您好我想获得当前焦点按钮点击的编辑文本,有任何按钮可以执行此操作。
如果活动中有许多编辑文本,或者有一种方法可以识别上次修改哪个edittext。
请建议我使用可用的链接或示例代码。
答案 0 :(得分:1)
我采用线性布局并在其中添加自定义EditText。
LayoutInflater li = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
for(int i = 0; i < 3; i++) {
View v = li.inflate(R.layout.addit, null);
final EditText e = (EditText) v.findViewById(R.id.e1);
e.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
System.out.println("--change--");
mEditText = e;
System.out.println(e.getText().toString());
}
});
edit_ll.addView(v);
}
这里mEditText是一个全局变量。
您可以在活动中的任何位置访问它。并且可以得到你写的最后一个editText。
答案 1 :(得分:0)
您可以将textWatcher添加到所有EditTexts:
private class CustomTextWatcher implements TextWatcher {
private EditText mEditText;
public CustomTextWatcher(EditText e) {
mEditText = e;
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
}
}
并且可以为您的类提供一个全局变量,以包含正在编辑的editText引用。