2016-04-19 9 views
1

私は、リストビューとclickeableアイテムを持つアクティビティを持っており、それぞれのアクティビティを個別のアクティビティに表示します。私の主な活動は、これらの項目をフィルタリングするSearchViewを持っています。私はアイテムをクリックすることができるようにしたい(開いている新しいアクティビティ)、私は戻るボタンを押すと、私のsearchViewは(フィルタリングされたリストで)同じままです。アクティビティを再開した後、SearchViewでクエリを持続する

私はこのような私のsearchviewを実装:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    // Inflate menu to add items to action bar if it is present. 
    inflater.inflate(R.menu.menu_main, menu); 
    final MenuItem searchItem = menu.findItem(R.id.action_search); 
    mSearchView = (SearchView) searchItem.getActionView(); 
    mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      Log.w("SEARCH", "SearchOnQueryTextSubmit: " + query); 
      mQuery = query; 
      if (!mSearchView.isIconified()) { 
       mSearchView.setIconified(true); 
      } 
      searchItem.collapseActionView(); 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String s) { 
      Log.w("SEARCH", "SearchOnQueryTextChanged: " + s); 
      mQuery = s; 
      contactAdapter.getFilter().filter(s); 

      return false; 
     } 
    }); 

と私はmQueryが何かを持っていたかどうかを確認するためにonResumeに、または同じonCreateOptionsMenuに何かを実装しようとしていました。

if (!TextUtils.isEmpty(mQuery)) { 
     final String thisQuery = mQuery; 
     mSearchView.post(new Runnable() { 
      @Override 
      public void run() { 
       Log.d(TAG, "onResume: setting mQuery to searchView"); 
       Log.d(TAG, "mQuery: "+thisQuery); 
       MenuItemCompat.expandActionView(searchItem); 
       mSearchView.setQuery(thisQuery, true); 
      } 
     }); 
    } 

両方の方法で試しましたが、成功しませんでした。 onCreateOptionsMenuで、もし私がそれをデバッグすると、SearchViewは私のクエリをフィルタリングするために呼び出されますが、その直後に別のコールが空の検索になります!私はこれがどこから来るのか分かりません。

助けが必要ですか?ありがとう!

+1

ここで選択した回答を確認してください - これはあなたが探しているようです。 [活動の前の状態を維持する方法](http://stackoverflow.com/questions/9147981/how-to-maintain-the-previous-state-of-an-activity)。 – ishmaelMakitla

+0

驚くばかり!ありがとう、私は正しいことをマークすることができるように答えとしてそれを書いてください。 – Nacho

+0

私はあなたのために働く提案がうれしいです - 私はあなたが示唆したように答えとしてそれを書いています。 – ishmaelMakitla

答えて

関連する問題