Вопрос

I want to use my getfilter() i implemented but from action bar in order to search my listview . But dont know why the app keeps on giving nullpointer i cant understand the error as well . Here's my code calling my custom getfilter implented inside my coustom adapter.

public static class DummySectionFragment extends Fragment {
    /**
     * The fragment argument representing the section number for this
     * fragment.
     */
    public static final String ARG_SECTION_NUMBER = "section_number";

    ListView itcItems;
    DataBaseHandler db;
    private SearchView mSearchView;
    //private EditText mStatusView;

    public DummySectionFragment() {
    }

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

         //MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.option_menu, menu); 

        //getMenuInflater().inflate(R.menu.action, menu);   


        searchView = (SearchView) menu.findItem(R.id.Search).getActionView();
        SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE); 
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
        searchView.setIconifiedByDefault(false);   

        SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
        {
            @Override
            public boolean onQueryTextChange(String newText) 
            {
                // this is your adapter that will be filtered
                adapter.getFilter().filter(newText);
                return true;
            }
            @Override
            public boolean onQueryTextSubmit(String query) 
            {
                // this is your adapter that will be filtered
                adapter.getFilter().filter(query);
                return true;
            }
        };
        searchView.setOnQueryTextListener(queryTextListener);





    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        setHasOptionsMenu(true);

        View rootView = inflater.inflate(R.layout.common_listview,
                container, false);
        setHasOptionsMenu(true);


        ActionBar actionbar = getActivity().getActionBar();
        getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        actionbar.show();
         //getActivity().requestWindowFeature(Window.FEATURE_ACTION_BAR);
         //mStatusView = (EditText) rootView.findViewById(R.id.status_text);
        itcItems = (ListView) rootView.findViewById(R.id.streamList);



        /*MyAsyncTask task = new MyAsyncTask(getActivity());
        task.execute("http://findaway.in/card/restlist.xml");


        *
        */
        db = new DataBaseHandler(getActivity());

        if(isOnline(getActivity()))

        { 
            flag=1;
            db.delete();
            getDataInAsyncTask();

            getImage(db);
            //db.close();

        }

        else
        {
            flag=0;
            Toast.makeText(getActivity(), "No internet",
                    Toast.LENGTH_LONG).show();

            try {
                db.openDataBase();
            } catch (SQLException sqle) {
                throw sqle;
            }

            getDataInDataBase(db);


        }

here's my logcat enter image description here

line 212 is searchView = (SearchView) menu.findItem(R.id.Search).getActionView();

also is it compulsory to implement res/xml/searchable.xml ?? i havnt done that

Это было полезно?

Решение

In onCreateOptionsMenu(), call to super is missing. Consider using super and then using inflater and menu objects.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top