android - 在 Sherlock Fragment 中实现列表搜索 View

标签 android listview android-fragments

我已经创建了 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/

相关文章:

java - 改造 - 当我调用 Intent 打开新 Activity 时应用程序崩溃

android - 使用基本适配器和 ListView 显示来自 SQLite 的变量数据

android - 长按 ListView android 后显示一个对话框

android - 如何使用 google-play-purchase-validator 在应用程序和 Node.js 服务器之间进行有效购买

Android调试-Nexus 7-eclipse-mac下状态下线

C# 如何刷新 ListView

Android - MapsActivity 标题栏中的后退按钮

java - 错误 : no suitable constructor found for ArrayAdapter(Tab1Fragment, int,ArrayList <字符串>)

android - sharedPreferences 返回空值

Android - 将 TalkBack 辅助功能焦点设置到特定 View