AndroidStudio写程序遇到onClick()无效的情况

玉宇惟思 2016-06-12 09:54:20
实现clicklistener之后重写onclick(),但是onclick完全没有反应,没有日志生成,编译后安装,点击事件就和没有一样,调试发现完全没有走到方法里(第一次用AS调试有可能做错了)
public class MainActivity extends AppCompatActivity implements View.OnClickListener{

public Button b1;
public EditText ed1;
public static String TAG="MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1= (Button) findViewById(R.id.b1);
ed1= (EditText) findViewById(R.id.ed1);
ed1.setText(String.format("TaskID:%d\nActivityID:%s",this.getTaskId(),toString()));

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Main3Activity.class);
Bundle bundle=new Bundle();
bundle.putString("bundle0","用getserializableExtra()getparceableExtra()获取 ");
bundle.putString("bundle1","/*1匿名内部类注册点击事件*/");
intent.putExtra("data0","Intent传递自定义对象的时候需要实现Serializable(Parcelable)接口,");
intent.putExtra("datab",bundle);
startActivityForResult(intent,0);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

ed1.setText(data.getStringExtra("data")+"requestCode is "+requestCode+"返回码是 "+resultCode);
}

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.b3:
startActivity(new Intent(getApplicationContext(),Main3Activity.class));
break;
default:
Toast.makeText(MainActivity.this,"4Activity实现监听接口注册监听事件",Toast.LENGTH_SHORT).show();
}
}

/*public void onMyClick(View v){
startActivity(new Intent(getApplicationContext(),MainActivity.class));
Toast.makeText(MainActivity.this,"3xnl文件注册点击事件",Toast.LENGTH_SHORT).show();

System.out.println("普通信息Info");
System.err.println("错误信息Warn");

Log.v(TAG, "无用日志");
Log.d(TAG, "调试日志");
Log.i(TAG, "普通日志");
Log.w(TAG, "警告日志");
Log.e(TAG, "错误日志");
}*/
}
...全文
1603 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aheaboy 2018-03-28
  • 打赏
  • 举报
回复
引用 6 楼 lxl1996923 的回复:
onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
对,问题就是出在这里。感谢,感谢。。。
lxl1996923 2016-06-12
  • 打赏
  • 举报
回复
引用 8 楼 u013406199 的回复:
[quote=引用 7 楼 lxl1996923 的回复:] [quote=引用 6 楼 lxl1996923 的回复:] onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
button对象.setOnClickListener(this);[/quote]大神啊,已解决,虽然程序出现其他异常,但是点击事件已经实现,好久没碰JAVA,没有注册监听都不知道了。。。。。[/quote] 哈哈,才不是大神,菜鸟一个,曾经因为这个浪费一小时都找不到解决方法,又去翻看了一眼书上的示例代码,发现自己竟然这么粗心,生了半天闷气,好在以后再也忘不了了。
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
引用 7 楼 lxl1996923 的回复:
[quote=引用 6 楼 lxl1996923 的回复:] onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
button对象.setOnClickListener(this);[/quote]大神啊,已解决,虽然程序出现其他异常,但是点击事件已经实现,好久没碰JAVA,没有注册监听都不知道了。。。。。
lxl1996923 2016-06-12
  • 打赏
  • 举报
回复
引用 6 楼 lxl1996923 的回复:
onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
button对象.setOnClickListener(this);
lxl1996923 2016-06-12
  • 打赏
  • 举报
回复 1
onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
引用 4 楼 dongfeng9ge 的回复:
引用 3 楼 u013406199 的回复:
[quote=引用 1 楼 dongfeng9ge 的回复:] 你的id写错了
还不太会回复,default也没有执行这个和ID没啥关系吧
这个方法你也没调用呀[/quote]最关键的是每个按钮都点击之后还是没有反应
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.xioayu.myapplication.MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ed1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"/>

    <Button
        android:textAllCaps="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/b1"
        android:layout_below="@id/ed1"
        android:layout_alignParentLeft="true"/>

    <Button
        android:textAllCaps="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Standard"
        android:id="@+id/b2"
        android:layout_below="@id/ed1"
        android:layout_toRightOf="@id/b1" />

    <Button
        android:textAllCaps="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SingleTop"
        android:id="@+id/b3"
        android:layout_below="@id/ed1"
        android:layout_toRightOf="@id/b2" />

</RelativeLayout>
东风玖哥 2016-06-12
  • 打赏
  • 举报
回复
引用 3 楼 u013406199 的回复:
引用 1 楼 dongfeng9ge 的回复:
你的id写错了
还不太会回复,default也没有执行这个和ID没啥关系吧
这个方法你也没调用呀
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
引用 1 楼 dongfeng9ge 的回复:
你的id写错了
还不太会回复,default也没有执行这个和ID没啥关系吧
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
case R.id.b3:你是指这一行么?但是default也没有执行啊。。。。。。。。
东风玖哥 2016-06-12
  • 打赏
  • 举报
回复
你的id写错了
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
引用 10 楼 u013406199 的回复:
[quote=引用 9 楼 lxl1996923 的回复:] [quote=引用 8 楼 u013406199 的回复:] [quote=引用 7 楼 lxl1996923 的回复:] [quote=引用 6 楼 lxl1996923 的回复:] onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
button对象.setOnClickListener(this);[/quote]大神啊,已解决,虽然程序出现其他异常,但是点击事件已经实现,好久没碰JAVA,没有注册监听都不知道了。。。。。[/quote] 哈哈,才不是大神,菜鸟一个,曾经因为这个浪费一小时都找不到解决方法,又去翻看了一眼书上的示例代码,发现自己竟然这么粗心,生了半天闷气,好在以后再也忘不了了。[/quote] 大神讷讷个帮我看一下为什么,onclick()里startActivity(new Intene(this,Main3Activity.class))这句报错么,空对象异常。。。。。[/quote]不用了、、、、、又是一个没注意的错误。。。。。。脑袋有点晕晕的我
玉宇惟思 2016-06-12
  • 打赏
  • 举报
回复
引用 9 楼 lxl1996923 的回复:
[quote=引用 8 楼 u013406199 的回复:] [quote=引用 7 楼 lxl1996923 的回复:] [quote=引用 6 楼 lxl1996923 的回复:] onCreate里面加上 Button bt3=(Button)findViewById(R.id.bt3); bt3.setOnClickListener(this); 就可以了。 重写onclick需要 onCreate里再调用setOnClickListener这个方法然后传入this。
button对象.setOnClickListener(this);[/quote]大神啊,已解决,虽然程序出现其他异常,但是点击事件已经实现,好久没碰JAVA,没有注册监听都不知道了。。。。。[/quote] 哈哈,才不是大神,菜鸟一个,曾经因为这个浪费一小时都找不到解决方法,又去翻看了一眼书上的示例代码,发现自己竟然这么粗心,生了半天闷气,好在以后再也忘不了了。[/quote] 大神讷讷个帮我看一下为什么,onclick()里startActivity(new Intene(this,Main3Activity.class))这句报错么,空对象异常。。。。。

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧