2012-03-09 15 views
4

に埋め込まれたSearchViewを使用するアプリケーションで作業しています。それは1つのActivityを除いて、アプリ全体で完全に動作します。このActivityでは、検索アイコンをクリックしてアクションバー全体に検索ビューを表示することができますが、検索ビューに何かを入力すると、テキスト入力は無視され(テキストは表示されません)、フォーカスは検索ボックス。Android SearchViewで入力できない(TabActivityと競合する)

このアクティビティと私のアプリケーションの主な違いは、このアクティビティにTabActivityを使用して実装されたタブがあることです。私はそれが原因であるかどうか、誰かが潜在的な解決策を持っているのだろうかと思います。

これはSearchViewのコードです:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
    searchView.setSubmitButtonEnabled(true); 
    searchView.setOnQueryTextListener(queryTextListener); 
    searchView.setQueryHint("product search"); 

    return true; 
} 

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
    @Override 
    public boolean onQueryTextChange(String newText) { 
     return true; 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query) { 
     _listControl = new ListControl(_thisProduct,query); 
     _listControl.startGetData(); 
     return true; 
    } 
}; 

これは私のタブ付きアクティビティのセットアップです。タブは異なるビュー間を切り替えます。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.product); 


    //set up tabs 
    mTabHost = getTabHost(); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Info").setContent(R.id.productLayout)); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Specs").setContent(R.id.specLayout)); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Reviews").setContent(R.id.reviewLayout)); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("Buy").setContent(R.id.textView4));// 


    mTabHost.setCurrentTab(0); 
    mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 40; 
    mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 40; 
    mTabHost.getTabWidget().getChildAt(2).getLayoutParams().height = 40; 
    mTabHost.getTabWidget().getChildAt(3).getLayoutParams().height = 40; 
+0

解決策を見つけましたか? –

答えて

0

SearchViewはタブ付きのアクティビティで動作するはずですが、すぐにお知らせします。一方で、フラグメントで動作するタブ付きアクティビティの代わりにViewPagerを試してみることもできますし、オプションとしてActionBar自体もタブを表示する機能を提供します。それがどうやって起こっているのか分かりますか?