【发布时间】:2017-04-26 13:57:02
【问题描述】:
我试图让用户在编辑文本中输入文本。当用户按回车键时,我想从编辑文本中获取文本并将其添加到我的 ArrayList 中。我在从编辑文本中控制 keyEvent 时遇到问题。
public class MainActivity extends Activity {
ArrayList<String> array_list;
ListAdapter lv;
ListView list;
EditText edittext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
array_list = new ArrayList<String>();
edittext = (EditText) findViewById(R.id.textView);
lv = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array_list);
list = (ListView) findViewById(R.id.lstView);
list.setAdapter(lv);
edittext.requestFocus();
edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_GO) {
array_list.add(edittext.getText().toString());
edittext.setText("");
edittext.requestFocus();
}
return handled;
}
});
}
}
所以我需要做的是当用户按下回车键时,它会从字段中获取文本并将其添加到 arrayList。然后它会从文本字段中删除文本并重新获得焦点。
【问题讨论】:
-
请出示您的代码?很难猜出您的问题。
-
我见过人们使用 onKeyListeners 和 textWatchers。我只是想知道哪个最容易使用以及如何实现它。
-
他们实际上做了不同的事情。
OnKeyListener将听取某些键盘键并采取行动,另一方面,TextWatcher只接收新文本并且可能不会接收 \n 字符,除非EditText设置为多行。无论如何,我相信OnKeyListener是最好的方法。 -
I am having issues controlling the keyEvent from the edit text.确实不够具体 -
@njzk2 我添加了代码来展示我所写的内容。
标签: java android android-edittext