我的代码是能够正常工作的。
mButton = new Button[4];
mButton[0] = (Button)findViewById(R.id.button1);
mButton[1] = (Button)findViewById(R.id.button2);
mButton[2] = (Button)findViewById(R.id.button3);
mButton[3] = (Button)findViewById(R.id.button4);
for(int i = 0; i < 4; i++){
mButton[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("test", "" + v.getId());
}
});
}希望能提供一下log分析下,初步认为是mClickIndex的值被修改,越界了。
mButton = new Button[4];
mButton[0] = (Button)findViewById(R.id.button1);
mButton[1] = (Button)findViewById(R.id.button2);
mButton[2] = (Button)findViewById(R.id.button3);
mButton[3] = (Button)findViewById(R.id.button4);
for(int i = 0; i < 4; i++){
mButton[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("test", "" + v.getId());
}
});
}希望能提供一下log分析下,初步认为是mClickIndex的值被修改,越界了。
解决方案 »
- android list targets 显示为空
- android应用程序如何实现开进自动运行,而不要先进入桌面再自动运行?
- 关于android使用xmpp实现数据推动
- 如何修改Binder transaction buffer的大小
- [Android:Kernel]怎么在Kernel里添加宏
- 在线等,一个 Run Configuration问题
- 我的eclipse中怎么没有android EditText
- android 连连看 怎么来设置关卡难度
- wifiConfiguration 无密码热点与wep热点的区别
- java.lang.RuntimeException: Unable to create application * : java.lang.NullPoint
- activity 问题
- android进程拦截
但是不知有否运行程序?
因为有点怀疑
for循环里的变量i好像传不到mButton[i].setOnClickListener()里面去
必须要定义成成员变量或者全局变量
你的代码确实是没有问题的,但是你试着往public void onClick(View v) {}里面传个参数,
比如说把for循环的i传进去,就会有问题了
知道错误所在了,监听到按钮,传到public void onClick(View v) {}里面的mClickIndex都已经变成25了,数组必然越界了。因为onClick(View v)这个函数要等监听之后才执行
就是说不同按钮onClick(View v)里面的mClickIndex对应各自的检索值
i传不进去和变量的作用域有关系吧~
用全局变量也不能解决你的问题
除非能知道当前被按下button类似id的东西
http://blog.csdn.net/Android_Tutor/archive/2010/07/16/5740845.aspx sButton.setOnClickListener(this); //两个button设同一个listen
pButton.setOnClickListener(this); //铵钮点击事件响应
public void onClick(View v) {
if(v == sButton){
SerializeMethod();
}else{
PacelableMethod();
}
}