我想创建 1 个具有以下条件的编辑文本: - 用户无法正常关注此控件。- 当用户点击此控件时,会显示软键盘,用户可以输入此控件 - 当用户在此软键盘上或返回设备上按 Enter 时,它会关闭并返回正常视图,并且控件不是焦点。
我尝试了下面的代码但不起作用:(启动时,控制不是焦点:好的
单击控件时,第一次单击时,控件为焦点但不显示软键盘
在第二次点击中,显示软键盘
- 当按下软键盘中的输入按钮时:返回屏幕控制不聚焦:OK
当按下返回按钮设备时,返回屏幕控制仍然是焦点:不正常
public void onCreate(Bundle savedInstanceState) { final EditText txtSearch = (EditText)this.findViewById(R.id.p60004_txt_search_str); txtSearch.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub txtSearch.setFocusable(true);//(false); txtSearch.setFocusableInTouchMode(true); txtSearch.requestFocus(); } }); txtSearch.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { String strSearch = txtSearch.getText().toString(); if (strSearch != null && strSearch != ""){ searchFriend(UserAPIConstants.FRIEND_SEARCH_TYPE_SC, strSearch); } hideSoftKeyboard(v); txtSearch.setFocusable(false); txtSearch.setFocusableInTouchMode(false); } return false; } }); public void hideSoftKeyboard (View view) { InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); }