我有一个用于MenuItems的searchIcon的ActionLayout.这个ActionLayout有一个AutoCompleteTextView,它有imeOption =“actionSearch”.
但是当我单击menuItems并显示ActionLayout时,弹出软键盘,但它仍然有换行键而不是searchIcon.
活动代码:
private AutoCompleteTextView mEtSearchbar; private MenuItem mSearchbar; @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.searchIcon: mEtSearchbar.clearFocus(); (new Handler()).postDelayed(new Runnable() { public void run() { mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,0)); mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,0)); } },100); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // TODO Auto-generated method stub inflater.inflate(R.menu.m_menu,menu); mSearchbar = (MenuItem) menu.findItem(R.id.searchIcon); View actionview = mSearchbar.getActionView(); mEtSearchbar = ((AutoCompleteTextView) actionview .findViewById(R.id.search_editText)); final ImageView searchImage = ((ImageView) actionview .findViewById(R.id.search_image)); searchImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { String s = mEtSearchbar.getText().toString(); Intent intent = new Intent(getSherlockActivity(),SearchActivity.class); intent.putExtra("search_string",s); startActivity(intent); } }); mEtSearchbar .setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v,int actionId,KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { searchImage.performClick(); return true; } return false; } }); super.onCreateOptionsMenu(menu,inflater); }
* menu layou * t
m_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/searchIcon" android:actionLayout="@layout/search_icon_actionview" android:icon="@drawable/search_icon" android:showAsAction="ifRoom|collapseActionView" android:title="Search"/> <item android:id="@+id/notificationIcon" android:icon="@drawable/notification_icon" android:orderInCategory="0" android:showAsAction="ifRoom|collapseActionView" android:title="Notifications"/> </menu>
search_icon_actionview.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/search_image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:clickable="true" android:contentDescription="Search icon" android:src="@drawable/search_icon" /> <AutoCompleteTextView android:id="@+id/search_editText" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toLeftOf="@id/search_image" android:hint="Search" android:imeOptions="actionSearch" /> </RelativeLayout>
如何在软键盘上有一个searchIcon或至少一个完成按钮,点击它必须执行我在ActionLayout中的searcIcon点击
谢谢
解决方法
我必须补充一下
android:singleLine="true"
也