当我们连续见多个按键的时候,可能我们会不厌其烦地连续复制粘贴代码,
但是有些地方的,我觉得不应该那么麻烦,自己感觉挺不错的代码,分享下,
喜欢喷的,欢迎喷,我要进步:public class MainActivity extends Activity {
private final int EQUIS_COUNT = 5;//总设备数
private final int EXAMS_COUNT = 20;//总故障数
private int index = 0;//主要用作for()循环里面的index
private TextView tips = null;
private Button equi01 = null;
private Button equi02 = null;
private Button equi03 = null;
private Button equi04 = null;
private Button equi05 = null;
private ArrayList<Button> buttons = new ArrayList<Button>();
private ArrayList<Equi> equis = new ArrayList<Equi>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_equi);
tips = (TextView)this.findViewById(R.id.tipsID);
/*
equi01 = (Button)this.findViewById(R.id.equiButton01ID);
equi02 = (Button)this.findViewById(R.id.equiButton02ID);
equi03 = (Button)this.findViewById(R.id.equiButton03ID);
equi04 = (Button)this.findViewById(R.id.equiButton04ID);
equi05 = (Button)this.findViewById(R.id.equiButton05ID);
buttons.add(equi01);
buttons.add(equi02);
buttons.add(equi03);
buttons.add(equi04);
buttons.add(equi05);
*/
int id = R.id.equiButton01ID;
for(;index<5;index++){
buttons.add((Button)this.findViewById(id));
id++;
}
index = 0;
for(;index<EQUIS_COUNT;index++){
equis.add(new Equi());
}
index = 0;
for(;index<buttons.size();index++){
buttons.get(index).setOnClickListener(new OnClickListener() {
doSomething("做相同的事情");
}
});
}
index = 0;
}}R文件: public static final int equiButton01ID=0x7f080000;
public static final int equiButton02ID=0x7f080001;
public static final int equiButton03ID=0x7f080002;
public static final int equiButton04ID=0x7f080003;
public static final int equiButton05ID=0x7f080004;地址是连续的,连续加就行了
自己感觉挺不错的,如果有什么不好的,麻烦指出
但是有些地方的,我觉得不应该那么麻烦,自己感觉挺不错的代码,分享下,
喜欢喷的,欢迎喷,我要进步:public class MainActivity extends Activity {
private final int EQUIS_COUNT = 5;//总设备数
private final int EXAMS_COUNT = 20;//总故障数
private int index = 0;//主要用作for()循环里面的index
private TextView tips = null;
private Button equi01 = null;
private Button equi02 = null;
private Button equi03 = null;
private Button equi04 = null;
private Button equi05 = null;
private ArrayList<Button> buttons = new ArrayList<Button>();
private ArrayList<Equi> equis = new ArrayList<Equi>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_equi);
tips = (TextView)this.findViewById(R.id.tipsID);
/*
equi01 = (Button)this.findViewById(R.id.equiButton01ID);
equi02 = (Button)this.findViewById(R.id.equiButton02ID);
equi03 = (Button)this.findViewById(R.id.equiButton03ID);
equi04 = (Button)this.findViewById(R.id.equiButton04ID);
equi05 = (Button)this.findViewById(R.id.equiButton05ID);
buttons.add(equi01);
buttons.add(equi02);
buttons.add(equi03);
buttons.add(equi04);
buttons.add(equi05);
*/
int id = R.id.equiButton01ID;
for(;index<5;index++){
buttons.add((Button)this.findViewById(id));
id++;
}
index = 0;
for(;index<EQUIS_COUNT;index++){
equis.add(new Equi());
}
index = 0;
for(;index<buttons.size();index++){
buttons.get(index).setOnClickListener(new OnClickListener() {
doSomething("做相同的事情");
}
});
}
index = 0;
}}R文件: public static final int equiButton01ID=0x7f080000;
public static final int equiButton02ID=0x7f080001;
public static final int equiButton03ID=0x7f080002;
public static final int equiButton04ID=0x7f080003;
public static final int equiButton05ID=0x7f080004;地址是连续的,连续加就行了
自己感觉挺不错的,如果有什么不好的,麻烦指出
然后我还想问下你呢:
public class MainActivity extends Activity {
private final int EQUIS_COUNT = 5;//总设备数
private final int EXAMS_COUNT = 20;//总故障数
private int index = 0;//主要用作for()循环里面的index
.....
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_equi);
tips = (TextView)this.findViewById(R.id.tipsID);
int id = R.id.equiButton01ID;
for(;index<5;index++){
buttons.add((Button)this.findViewById(id));
id++;
}
index = 0;
for(;index<EQUIS_COUNT;index++){
equis.add(new Equi());
}
index = 0;
for(;index<buttons.size();index++){
buttons.get(index).setOnClickListener(new OnClickListener() {
doSomething("做相同的事情"
// + (index++)
);
}
});
}
index = 0;
}
}我现在是把index写成全局变量,所以它才能在匿名函数里存在,
那如果我现在把index改为局部变量,要想成功地把匿名函数里面和外面的index一致的话,我该怎么弄??
求技巧谢谢
不是更方便么 另外,你提出的index在内部类里引用,局部变量是不能改的,系统会提示你 强制写成final但是你可以先取出这个值,int a = index; 然后通过修改a来完成一些操作
使用的时候用indexWrap[0]来获取/设置index。如果是我设计的话,一般会在定义xml的时候给每个Button设置个onClick属性,再设置个tag属性。
然后在Activity的onClick方法里面根据View.getTag()方法来做什么什么的