2017-10-14 9 views
1

こんにちは、OneFragmentとThreeFragmentの2つのフラグメントがあります。いくつかのフラグメントからsearchviewを削除するには?

OneFragmentには、ViewPager with Fragment:AllNewsFragmentがロードされます。

ThreeFragmentには、ViewPager with Fragment:SoccerFragmentがロードされます。

同様:AllNewsFragment-> OneFragment

SoccerFragment-> ThreeFragment私はこのコードを使用してOneFragmentするsearchview追加した

:それはprefectly作業が、問題そのsの

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     menu.clear(); 
     inflater.inflate(R.menu.menu_search, menu); 
     MenuItem item = menu.findItem(R.id.action_search); 
     SearchView searchView = new SearchView(((navigation) getActivity()).getSupportActionBar().getThemedContext()); 
     MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); 
     MenuItemCompat.setActionView(item, searchView); 
     searchView.setOnQueryTextListener(
       new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 
      @Override 
      public boolean onQueryTextChange(String newText) { 
       adapter.getFilter().filter(newText); 

       return true; 
      } 
     }); 
     searchView.setOnClickListener(new View.OnClickListener() { 
              @Override 
              public void onClick(View v) { 

              } 
             } 
     ); 

    } 

切り替えThreeFragmentには、ThreeFragmentにはまだsearchviewが表示されます。

ThreeFragmentでonCreateOptionsMenuと同じコードを実装しようとしましたが、searchView.setVisibility(View.GONE)を追加しました。それは働いていません。

OneFragmentにのみsearchviewを表示し、ThreeFragmentから削除します。

ありがとうございました。

答えて

0

1つのフラグメントで検索を実行する場合は、Edittextを使用して検索し、EditTextをOne Fragment(AllNewsFragment)XMLに配置します。あなたのEditTextが(サーチ)と名付けられている場合と同様に 、あなたはこのように検索することができます。

searchbox.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void afterTextChanged(Editable editable) { 
      //after the change calling the method and passing the search input 
      adapter.getFilter().filter(newText); 
     } 
    }); 
+0

ありません、私ドンtはのEditTextを使用したいです –

関連する問題