如何将2个onKeyListener设置为同一个视图。
如果我有一个EditText et,我想要
et.setOnKeyListener(onKeyListener1);
et.setOnKeyListener(onKeyListener2);
有没有办法实现这个目标?
答案 0 :(得分:0)
不是真的......这是一个set方法而不是添加。您可以尝试使用回调或类似的东西从您的keylistener发送一些内容。
答案 1 :(得分:0)
不是,但你可以试试这个, 在onClicks上编写不同的3种方法,
public void onclick1 (){
// your code
}
public void onclick2 (){
// your code
}
public void onclickMain (View v){
// your code
}
使用oncclickMain作为XML部件上的onclick事件
android:onclick="onclickMain"
然后在onclickMain上你可以使用if条件来选择你需要触发的东西。
我希望这有效,
答案 2 :(得分:0)
您无法将两个OnKeyListener设置为相同的EditText。
现在,我不完全确定您的特殊EditText中的附加功能是什么,但也许您可以实现View.OnKeyListener来实现您想要的功能:
public class CommonOnKeyListener implements View.OnKeyListener{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
/*
* Here, insert the code that is common to all your EditTexts
*/
return false;
}
}
然后你可以定义第二个扩展CommonKeyListener的OnKeyListener,并为你的特定EditText做一些额外的工作:
public class CustomOnKeyListener extends CommonOnKeyListener{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
/* Make a call to the parent class's onKey method
* so you can reuse the functionality in your CommonOnKeyListener
*/
boolean result = super.onKey(v, keyCode, event);
/*
* Your additional code goes here (e.g. for your special EditText)
*/
return false;
}
}
现在,所有的EditTexts都可以使用CommonOnKeyListener,您可以将CustomOnKeyListener设置为特殊的EditText:
View.OnKeyListener listener1 = new CommonOnKeyListener();
View.OnKeyListener listener2 = new CustomOnKeyListener();
// Set the key listeners to the appropriate EditTexts
yourEditText1.setOnKeyListener(listener1);
yourEditText2.setOnKeyListener(listener1);
yourSpecialEditText.setOnKeyListner(listener2);