android – 软键盘上的搜索图标

前端之家收集整理的这篇文章主要介绍了android – 软键盘上的搜索图标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用于MenuItems的searchIcon的ActionLayout.这个ActionLayout有一个AutoCompleteTextView,它有imeOption =“actionSearch”.

但是当我单击menuItems并显示ActionLayout时,弹出软键盘,但它仍然有换行键而不是searchIcon.

活动代码

  1. private AutoCompleteTextView mEtSearchbar;
  2. private MenuItem mSearchbar;
  3.  
  4. @Override
  5. public boolean onOptionsItemSelected(MenuItem item) {
  6. switch (item.getItemId()) {
  7.  
  8. case R.id.searchIcon:
  9.  
  10. mEtSearchbar.clearFocus();
  11. (new Handler()).postDelayed(new Runnable() {
  12. public void run() {
  13. mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(
  14. SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,0));
  15. mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(
  16. SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,0));
  17. }
  18. },100);
  19. return true;
  20. default:
  21. return super.onOptionsItemSelected(item);
  22. }
  23. }
  24.  
  25. @Override
  26. public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
  27. // TODO Auto-generated method stub
  28. inflater.inflate(R.menu.m_menu,menu);
  29.  
  30.  
  31. mSearchbar = (MenuItem) menu.findItem(R.id.searchIcon);
  32. View actionview = mSearchbar.getActionView();
  33. mEtSearchbar = ((AutoCompleteTextView) actionview
  34. .findViewById(R.id.search_editText));
  35. final ImageView searchImage = ((ImageView) actionview
  36. .findViewById(R.id.search_image));
  37. searchImage.setOnClickListener(new View.OnClickListener() {
  38.  
  39. @Override
  40. public void onClick(View arg0) {
  41.  
  42. String s = mEtSearchbar.getText().toString();
  43.  
  44. Intent intent = new Intent(getSherlockActivity(),SearchActivity.class);
  45. intent.putExtra("search_string",s);
  46. startActivity(intent);
  47. }
  48. });
  49.  
  50. mEtSearchbar
  51. .setOnEditorActionListener(new TextView.OnEditorActionListener() {
  52.  
  53. @Override
  54. public boolean onEditorAction(TextView v,int actionId,KeyEvent event) {
  55. if (actionId == EditorInfo.IME_ACTION_SEARCH) {
  56.  
  57. searchImage.performClick();
  58. return true;
  59. }
  60. return false;
  61. }
  62. });
  63.  
  64. super.onCreateOptionsMenu(menu,inflater);
  65. }

* menu layou * t

m_menu.xml

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >
  2.  
  3. <item
  4. android:id="@+id/searchIcon"
  5. android:actionLayout="@layout/search_icon_actionview"
  6. android:icon="@drawable/search_icon"
  7. android:showAsAction="ifRoom|collapseActionView"
  8. android:title="Search"/>
  9. <item
  10. android:id="@+id/notificationIcon"
  11. android:icon="@drawable/notification_icon"
  12. android:orderInCategory="0"
  13. android:showAsAction="ifRoom|collapseActionView"
  14. android:title="Notifications"/>
  15.  
  16. </menu>

search_icon_actionview.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6.  
  7. <ImageView
  8. android:id="@+id/search_image"
  9. android:layout_width="wrap_content"
  10. android:layout_height="fill_parent"
  11. android:layout_alignParentRight="true"
  12. android:clickable="true"
  13. android:contentDescription="Search icon"
  14. android:src="@drawable/search_icon" />
  15.  
  16. <AutoCompleteTextView
  17. android:id="@+id/search_editText"
  18. android:layout_width="fill_parent"
  19. android:layout_height="fill_parent"
  20. android:layout_toLeftOf="@id/search_image"
  21. android:hint="Search"
  22. android:imeOptions="actionSearch" />
  23.  
  24. </RelativeLayout>

如何在软键盘上有一个searchIcon或至少一个完成按钮,点击它必须执行我在ActionLayout中的searcIcon点击

谢谢

解决方法

我必须补充一下
  1. android:singleLine="true"

猜你在找的Android相关文章