我有一个用于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"
也