我正在获取编辑文本字段的数据,如下所示:
editfield1.setOnEditorActionListener(this);
然后
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (actionId == EditorInfo.IME_ACTION_DONE ||(event.equals(KeyEvent.KEYCODE_ENTER))||(event.equals(KeyEvent.KEYCODE_DPAD_CENTER))){
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
String data= editfield1.getText().toString();
}
}
这适用于某些Android设备samsung 2.2。因为要获得每个编辑字段 必须有一些关键事件。
但如果我尝试在micromax 4.0中运行,则无法从所有编辑字段中获取数据。 因为在这里我可以触摸每个编辑字段并写入值..所以没有关键事件。
我该如何解决这个问题。 请帮忙。
答案 0 :(得分:0)
我想你想跟踪TextView / EditText中的每个变化,不是吗? 您可以使用addTextChangedListener来跟踪更改。如果你需要,我会添加一个例子。
编辑: 您可以实现某种包装器来处理多个文本视图:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
attachTextViewWatcher(R.id.text1);
attachTextViewWatcher(R.id.text2);
attachTextViewWatcher(R.id.text3);
attachTextViewWatcher(R.id.text4);
attachTextViewWatcher(R.id.text5);
// tbc...
}
private void attachTextViewWatcher(int resId) {
TextView tv = (TextView) findViewById(resId);
tv.addTextChangedListener(new TextViewWatcher(tv));
}
private void onTextChanged(TextView v, CharSequence s, int start, int before, int count) {
// TODO do your stuff
}
private class TextViewWatcher implements TextWatcher {
private final TextView tv;
public TextViewWatcher(TextView tv) {
this.tv = tv;
}
@Override
public void afterTextChanged(Editable s) {
// ignore
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// ignore
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
MainActivity.this.onTextChanged(tv, s, start, before, count);
}
}
}