我已经创建了 ViewPagerAdapter 并在 veiewpageradapter 中调用了 Fragment2,但我需要在 fragment2 中创建列表搜索 View 。
public class ViewPagerAdapter extends FragmentPagerAdapter {
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
// Open Fragment1.java
case 0:
Fragment1 fragment1 = new Fragment();
return fragment1;
// Open Fragment2.java
case 1:
Fragment2 fragment = new Fragment2();
return fragment;
return null;
}
}
我的 fragment 类
public class Fragment2 extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Get the view from fragmenttab2.xml
View view = inflater.inflate(R.layout.fragment2, container, false);
//NEED TO CALL LIST SEARCH VIEW
return view;
}
}
是否可以在 onCreateView() 中调用列表搜索 View ?
最佳答案
在 Fragment 类中,您需要添加:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setQueryHint("Search");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
if(!TextUtils.isEmpty(newText)) {
// Call filter here
return true;
}
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
// Do something
return true;
}
});
}
将这一行添加到 Fragment 类的 onCreateView
方法中(显然是在 return 语句之前)
this.setHasOptionsMenu(true);
最后,这是 menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/search"
android:title="@string/menu_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />
</menu>
希望这对您有所帮助。
您还应该阅读:
关于android - 在 Sherlock Fragment 中实现列表搜索 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17900548/