我使用布局文件夹中的自定义布局为操作栏设置customview
。
以下是操作栏布局的代码。
custom_actionbar_home_page.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="60.0dip"
android:background="@drawable/b_header_strip" >
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_toLeftOf="@+id/search_btn"
android:layout_toRightOf="@+id/imageView1"
android:gravity="center"
android:paddingRight="15.0dip"
android:text="Dreamrun"
android:textAppearance="?android:textAppearanceLarge"
android:textColor="#ffffffff"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="35.0dip"
android:layout_height="35.0dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="8.0dip"
android:src="@drawable/ic_launcher" />
<ImageButton
android:id="@+id/search_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/love_btn"
android:background="@null"
android:src="@drawable/ic_search_header"
android:actionViewClass="android.widget.SearchView"/>
<ImageButton
android:id="@+id/love_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:src="@drawable/ic_whishlist" />
</RelativeLayout>
以下是onCreate方法中的活动代码:
actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
Singleton.getInstance(getApplicationContext());
View localView = LayoutInflater.from(this).inflate(R.layout.custom_actionbar_home_page, null);
mTitleTextView = ((TextView)localView.findViewById(R.id.title_text));
mTitleTextView.setText("DREAMRUN");
ImageButton localImageButton = (ImageButton)localView.findViewById(R.id.search_btn);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) localView.findViewById(R.id.search_btn);
SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());
searchView.setSearchableInfo(searchableInfo);
actionBar.setCustomView(localView);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
我的问题是当我点击search_btn
时显示编辑文字以输入搜索关键字。它应该与菜单中的搜索功能相同。
但在我Activity
我正在使用菜单文件中的动作图标。我正在使用actionbar
的自定义布局。
请给我一个解决方案,在没有菜单文件的情况下,从自定义布局(actionbar)
实现搜索功能。
感谢。
答案 0 :(得分:0)
你无法投射&#39; ImageButton&#39;作为&#39; SearchView&#39;
final SearchView searchView (SearchView)localView.findViewById(R.id.search_btn);
请参阅此link