Android开发学习笔记:为动态添加的EditText控件绑定值改变监听事件

来源:互联网 发布:linux怎么访问网页 编辑:程序博客网 时间:2024/05/17 03:18

LinearLayout LP=new LinearLayout(context);final EditText editText=new EditText(context);//editText.setHeight(47);editText.setId(i);Log.i("当前添加的文本框ID:",String.valueOf(editText.getId()));editText.setHint(R.string.txthint);editText.setBackgroundResource(R.drawable.table_shape2);//设置自定义样式(使用的是drawable文件夹中的xml文件)/*设置EditText组件值改变监听事件*/editText.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {//Log.i("文本输入框值改变事件:",s.toString());}/** *值改变事件 * @param s       文本框输入的值 * @param start   输入的起始位置(索引) * @param before * @param count */@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {//从内部类中访问本地变量editText; 需要被声明为最终类型(用final修饰)int editTxtId= editText.getId();LinearLayout editTextParent= (LinearLayout) editText.getParent();//获取当前编辑的文本输入框的父控件/** 获取当前文本编辑框所在的行对象(由于文本编辑框外嵌套了一个LinearLayout控件* 因此需要先获取文本边框的父控件)*/TableRow tr= (TableRow) editTextParent.getParent();Log.i("当前编辑行索引:",String.valueOf(tr.getId()));//设置第一列中CheckBox的状态为选中状态(注意布局时CheckBox外层嵌套一个LinearLayout组件)((CheckBox)((LinearLayout)tr.getChildAt(0)).getChildAt(0)).setChecked(true);}@Overridepublic void afterTextChanged(Editable s) {   // Log.i("文本输入框值改变事件:",s.toString());}});LP.setBackgroundResource(R.drawable.table_shape);LP.addView(editText);




阅读全文
0 0