我是Android的新手,并且通过书中的待办事项列表示例.我有一个Activity在其下面显示EditText和ListView.有一个onKey事件,它应该将EditText中的文本添加到ListView并清除EditText.但是,当我在键盘上按Enter键时,所有发生的事情都是在EditText中添加一个新行,并且没有任何内容添加到ListView中.
onCreate代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do_list);
// Get UI references
ListView myListView = (ListView)findViewById(R.id.myListView);
final EditText myEditText = (EditText)findViewById(R.id.myEditText);
myEditText.setText("test");
// Create ArrayList to store To Do items
final ArrayList<String> toDoItems = new ArrayList<String>();
// Create ArrayAdapter to bind items to List View
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
toDoItems);
// Bind Adapter to List View
myListView.setAdapter(aa);
myEditText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) ||
(keyCode == KeyEvent.KEYCODE_ENTER)) {
toDoItems.add(0, myEditText.getText().toString());
aa.notifyDataSetChanged();
myEditText.setText("");
return true;
}
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我添加了myEditText.setText("test");just以确保对myEditText的引用正常工作,它就是这样.我已经尝试从onKey事件中删除if语句,它似乎根本没有注册关键事件.谁能告诉我这里做错了什么?
nat*_*z0r 13
您可以尝试使用OnEditorActionListener:
您可以在XML中设置edittext:
android:imeOptions="actionDone"
然后在代码中:
myEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// your action here
return true;
}
return false;
}
)};
Run Code Online (Sandbox Code Playgroud)
小智 5
你用的是虚拟键盘吗?在这种情况下,问题在于 OnKeyListener 只能由硬件按钮调用。看看这里: http://developer.android.com/reference/android/view/View.OnKeyListener.html
第一行表示:当硬件按键事件分派到此视图时要调用的回调的接口定义。
Perpas 某行这将解决您的问题:Validating edittext in Android
| 归档时间: |
|
| 查看次数: |
11007 次 |
| 最近记录: |