更改searchview中的文字

时间:2014-05-15 09:23:28

标签: android searchview

我有一个立即专注的Searchview(客户想要这个)。搜索balk中的文字始终是带有文本搜索提示的图标玻璃!

如何更改文字?

我试过

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint("TEST");

然后文本显示真实,然后更改回默认的android。

<item
    android:id="@+id/action_search"
    android:icon="@drawable/ic_action_search"
    android:title="@string/action_search"
    android:visible="false"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="collapseActionView|ifRoom" />

编辑:

这是我的创作:

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);

    menu.findItem(R.id.action_beneficiaries).setVisible(false);
    menu.findItem(R.id.action_search).setVisible(query == null);


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

        if (query == null) {
            // Associate searchable configuration with the SearchView
            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
            SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView()

            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
            searchView.setIconifiedByDefault(false);
        }
    }

    return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {

    // called from menu
    if (getCallingActivity() == null) {
        menu.findItem(R.id.action_accounts).setVisible(true);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            menu.findItem(R.id.action_transaction).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        } else {

            menu.findItem(R.id.action_transaction).setVisible(false);

        }
    } else {
        // called from New Transaction
        menu.findItem(R.id.action_transaction).setVisible(false);
    }

    return super.onPrepareOptionsMenu(menu);
}

1 个答案:

答案 0 :(得分:2)

根据您的xml,您正在使用支持库。因此,您需要使用以下内容检索项目:

MenuItem searchItem = (MenuItem) menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);  

然后,您可以使用searchView.setQueryHint()更改提示的文本,甚至可以使用setHintTextColor更改其颜色。