我无法解决这种熟悉的情况。
在我的项目中,我正在使用ActionBarSherlock并在Search icon
上点击我正在用自定义布局替换ActionBar。问题是如何从这个新布局中获取onClickListener和所有视图的视图?
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Search")
.setIcon(R.drawable.ic_search)
.setActionView(R.layout.on_search_icon_clicked)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS |MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
return true;
}
my on_search_icon_clicked.xml is:
<?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:src="@drawable/ic_search" />
<EditText
android:id="@+id/search_editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/search_image"
android:hint="@string/search"
android:singleLine="true" />
</RelativeLayout>
现在如何获得此search_image.setOnClickListener
和所有?
NullPointerException
。
谢谢
答案 0 :(得分:1)
我的意思是夸大布局,比如
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.on_search_icon_clicked, null, false);
view.findViewById(R.id.search_image).setOnClickListener(...);
menu.setActionView(view);
我认为你也可以通过调用getLayoutInflater();
获得inflater