在我的Android应用程序中..我正在尝试使用搜索图标放置搜索编辑文本..但我无法在操作栏中看到搜索图标而不是标题在溢出中看到。我在下面给出了我的代码
活性
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always"/>
<item
android:id="@+id/action_settings"
android:title="Settings"/>
</menu>
MainActvity
public class MainActivity extends ActionBarActivity
{
WebView wv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv1 = (WebView) findViewById(R.id.wView1);
wv1.getSettings().setJavaScriptEnabled(true);
wv1.loadUrl("http://www.example.com/songs/");
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
}
答案 0 :(得分:0)
借口。那是错的。
我认为这个问题与你正在使用的基类有关。你是ActionBarActivity的子类,而不是Activity。这意味着您正在使用以前版本的兼容性。为此,您需要将应用程序的主题设置为Theme.AppCompat(或类似的主题),还包括支持库。看here
答案 1 :(得分:0)
在onCreateOptionsMenu
中使用Search Manager n搜索视图 @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
// 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()));
return super.onCreateOptionsMenu(menu);
}
并在您的main.xml中添加此项以进行搜索
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView"/>
答案 2 :(得分:0)
我刚刚意识到如何解决问题!
您的菜单xml文件应该有一个起始标记,如:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myApp="http://schemas.android.com/apk/res-auto" >
你可以替换
对myApp
使用您想要的任何名称,现在重要的部分是您定义一个操作项时:
<item
android:id="@+id/actionitem_switch_view"
android:title="@string/view_as"
android:showAsAction="always"
myApp:showAsAction="always"
android:icon="@drawable/ic_action_view_as_list"/>
您有两个showAsAction标记,一个用于API&lt; 11设备,另一个用于其他设备, 仔细观察两个showAsAction标记是不同的,一个来自Android命名空间,另一个来自您在菜单中定义的标记起点