我想讓用戶輸入文本到編輯文本。當用戶點擊輸入鍵時,我想從編輯文本中獲取文本並將其添加到我的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;
}
});
}
}
所以我需要發生的是,當用戶按下enter鍵時,它將字段中的文本添加到arrayList中。然後它擦除文本字段中的文本,並再次給予焦點。
請出示你的代碼?很難猜測你的問題。 – Christopher
我見過有人使用onKeyListeners和textWatchers。我只是想知道哪一個最容易使用,以及如何實現它。 –
他們實際上做了不同的事情。 'OnKeyListener'將監聽某些鍵盤按鍵,然後執行,另一方面'TextWatcher'只接收新文本,並且可能不會接收\ n字符,除非EditText被設置爲多行。無論如何,我相信'OnKeyListener'是最好的方法。 –