问题引入
开发Android时会遇到有一系列的同种控件具有着有规律的命名,你又需要java代码操控他们,这时候会想要一次性获取所有的控件,实现监听或其他,相比一个一个的声明,关联,一次性的获取不仅仅提高了代码的可阅读性,也保持了代码的简洁性。
例:
一次性获取所有EditText,id具有相似性(et_price_数字)
public List<EditText> getAllEditText(){
//定义一个存储按钮的list数组(0-68按钮)
List<EditText> editTexts=new ArrayList<EditText>();
//获取R 资源
Resources res=getResources();
//下面用for循环进去findviewid
for (int i=0;i<68;i++){
int id=res.getIdentifier("et_price"+(i+1),"id",getPackageName());
EditText editText= (EditText) findViewById(id);//关联控件
editTexts.add(editText);
}
return editTexts;
}
- 遍历控件
List<EditText> editTexts=getAllEditText();
for (EditText editText:editTexts
) {
/**
此处java处理代码
*/
}
- 附
简单对话框的使用
new AlertDialog.Builder(MainActivity.this)
//MainActivity.this指在哪个地方显示对话框
.setTitle("描述" )
.setMessage("你好!")
.setPositiveButton("确定" , null )
.show();