Android SearchView 不允许输入(与 TabActivity 冲突?)

标签 android android-actionbar tabactivity

我正在开发一个使用 ActionBar 中嵌入的 SearchView 的应用程序。除了在一个 Activity 中,它在整个应用程序中都能完美运行。在此 Activity 中,我可以单击搜索图标以在操作栏上显示搜索 View ,但只要我在搜索 View 中键入任何内容,我的文本输入就会被忽略(不显示任何文本) , 并且焦点从搜索框移开。

此 Activity 与我的应用程序中的其他 Activity 之间的主要区别在于此 Activity 具有使用 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; 
    } 
}; 

这是我的选项卡式 Activity 的设置。选项卡在不同 View 之间切换。

 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;

最佳答案

我确定 SearchView 应该与选项卡式 Activity 一起使用,并且会尽快让您知道。同时,您能否尝试使用 ViewPager 而不是使用 fragment 的选项卡式 Activity ,或者作为选项 ActionBar 本身提供显示选项卡的功能。让我知道进展如何。

关于Android SearchView 不允许输入(与 TabActivity 冲突?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642255/

相关文章:

Android 将菜单项在操作栏中向左对齐

安卓操作栏 : Custom tabs and overflow

android - 我如何在选项卡之间显示 toast ?

java - extra\in json 响应之前/在 java、android 中

java - 如何在 android 小部件中设置泰米尔语文本?

java - 在 HttpURLConnection 中,为什么 JSONObject 作为 Params 不起作用,但 String 作为 Params 起作用

android - 如何更改操作栏中搜索 View 的图标颜色?

Android TabHost 有没有办法通过 ID 获取 TabView

android - 牛轧糖中的 TransactionTooLargeException

android - 全屏DialogFragment