当我按下文本编辑输入( s )时按下按钮,我想要发生同样的事情。
以下是用于文字修改的OnEditorActionListener
的实施:
private OnEditorActionListener clickedEnter = (new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//implemtation of task1
}
return false;
}
});
这是按钮的实现:
show.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//How can I call clickedEnter here?
}
});
原因是,我想要更少的代码和更容易的调试等。提前感谢。
答案 0 :(得分:2)
编辑:
final EditText editText = (EditText) findViewById(R.id.textView);
editText.setOnEditorActionListener(clickedEnter);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.onEditorAction(EditorInfo.IME_ACTION_DONE);
}
});
这是我的xml:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="200dp "
android:text="Done!"/>
<EditText
android:id="@+id/textView"
android:inputType="text"
android:singleLine="true"
android:imeOptions="actionDone"
android:textSize="30dp"
android:textColor="#333"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:hint="Enter text"/>
取决于您希望在编辑器中调用的action。
答案 1 :(得分:1)
你可以创建一个方法并在两个函数中调用它,或者在第一个方法中调用show.performClick()。
解决方案1:
private OnEditorActionListener clickedEnter = (new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
yourMethod();
}
return false;
}
});
show.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
yourMethod();
}
});
private void yourMethod(){
//Instructions
}
解决方案2:
private Button show;
private OnEditorActionListener clickedEnter = (new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
show.performClick();
}
return false;
}
});
show.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Instructions...
}
});
答案 2 :(得分:0)
您可以为您的任务创建不同的方法,并在侦听器的两个事件中调用该方法。
答案 3 :(得分:0)
我想你想要这样的东西
etOne.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
bSearch.performClick();
closeKeyboard(getActivity(),
etOne.getWindowToken());
return true;
}
return false;
}
});
和
bSearch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Do something..
}
});
现在按钮会//做一些事情..如果你想在用户按下键盘输入时也是如此,那就像按钮那样发生了......只需调用bSearch.performClick();
希望它有帮助..
编辑:点击输入后,closeKeyboard(getActivity(),etOne.getWindowToken());
也会自动隐藏软键盘。