1

I need to implement SearchView in ToolBar. I tried to do that.In MainActivity it shows the searching text in Log.e.But I need to send this searching query to Fragment from an Activity.I am using 3 tab fragments. From where I need to pass search query to Fragment

Here is my code..

MainActivity:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setSubmitButtonEnabled(false);
//        searchView.getOutlineProvider();
        searchView.setOnQueryTextListener(this);
        searchView.setOnCloseListener(this);

        return super.onCreateOptionsMenu(menu);
    } 

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_search:
                break;
            case R.id.action_addCart:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

@Override
    public boolean onClose() {
        passQuery = "";
        System.out.println("Restaurant close");
        return true;
    }

@Override
public boolean onQueryTextSubmit(String query) {

    passQuery = query;
    System.out.println("Restaurant onQueryTextSubmit =" + query);
    return true;
}


@Override
public boolean onSearchRequested() {
    Bundle appData = new Bundle();
    appData.putBoolean(SEARCHING_DATA, true);
    startSearch(null, false, appData, true);
    System.out.println("Restaurant onSearchRequested = " + appData);
    return true;
}

@Override
public boolean onQueryTextChange(String newText) {
    passQuery = newText;
    System.out.println("Restaurant onQueryTextSubmit =" + newText);
    return true;
}

ViewPageradapter:

 ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
         adapter.addFrag(new TabFragment_1(), "WHAT'S HOT!"); 
         adapter.addFrag(new TabFragment_2(), "PIZZAS");  
         adapter.addFrag(new TabFragment_3(), "ICE CREAMS");  

                    viewPager.setAdapter(adapter);

                    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
                    tabLayout.setupWithViewPager(viewPager);

Please Help me to pass search query through this viewPager in android

Parama Sudha
  • 2,583
  • 3
  • 29
  • 48
  • see this link http://stackoverflow.com/questions/27787246/toolbar-with-searchview-temporary-filtering-recyclerview?rq=1 – N J Feb 16 '16 at 05:44

1 Answers1

0

Create a method in your fragment and put adapter coding in that method. Then call the method from OnQueryTextChange or OnQueryTextSubmit. Here is the code to call a method in your fragment

YourFragment fragment = (YourFragment)getFragmentManager().
                        findFragmentById(R.id.fragment_container);
                        fragment.yourMethod(passQuery);