gpt4 book ai didi

android - 在 EditText android 中更改键盘输入文本

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:54 27 4
gpt4 key购买 nike

我想改变键盘输入,

示例:

当用户按下 a 时,会显示 c

我尝试使用 TextWatcher 并挂起,因为在调用 setText 之后,它将再次到达 TextWatcher 事件。因此,它将陷入僵局,无法正常工作。

setOnKeyListener 也不起作用。 onKey 事件在 Enter 时到达。按 a 或 b 时未到达。

可以在 EditText Android 中更改文本输入键吗?

更新:setOnKeyListener

final EditText edittext = (EditText) findViewById(R.id.editText1);

edittext.setOnKeyListener(new OnKeyListener() {


@Override
public boolean onKey(View arg0, int keycode, KeyEvent event) {
// TODO Auto-generated method stub
Log.i("onKey", "Arrive Keypress");
if (event.getAction()!=KeyEvent.ACTION_DOWN)
return true;

if (event != null&& (keycode == KeyEvent.KEYCODE_ENTER)) {

applySearch();
return true;
}

return false;
}


});

最佳答案

使用 TextWatcher,但要巧妙地使用它。当您调用 setText 时创建 boolean flag == true ,并在 onTextChanged 中每次检查此 flag。希望对您有所帮助。

public class MyActivity extends Activity implements TextWatcher {

EditText et;
boolean flag;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et=(EditText) findViewById(R.id.et);
et.addTextChangedListener(this);

}


@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(flag)
{
flag = false;
return;
}
else
{
//do same staff
flag = true;
et.setText("new text");
}
}

@Override
public void afterTextChanged(Editable s) {

}
}

关于android - 在 EditText android 中更改键盘输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com