myEditText.setOnKeyListener(new OnKeyListener(){
public boolean onKey(View v, int keyCode, KeyEvent event){
if (event.getAction() == KeyEvent.ACTION_DOWN)
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER){
todoItems.add(0,myEditText.getText().toString());
aa.notifyDataSetChanged();
myEditText.setText("");
return true;
}
return false;
}
请允许有人为我打破这段代码,我无法绕过setOnKeyListener方法。
答案 0 :(得分:3)
您的问题似乎是您不太了解匿名课程。
首先,setOnKeyListener
接受OnKeyListener
个对象。您可以创建一个实现此接口的新类,然后实例化它:
class MyKeyListener implements OnKeyListener {
@Override
public boolean onKey (View v, int keyCode, KeyEvent event) {
// ...
}
}
// On your other method:
myEditText.setOnKeyListener(new MyKeyListener());
我希望这很清楚,因为这几乎是你在Java中所做的一切。
但是,Java允许您通过定义匿名类来避免定义另一个类。为此,您只需对所需的基类或接口执行new
(OnKeyListener
),然后添加类主体,就像您定义它一样:< / p>
myEditText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey (View v, int keyCode, KeyEvent event) {
// ...
}
});
最后一段代码就是你所拥有的。