我想在我的Android ActionBar中添加一个搜索按钮,为此,我按照this回答。唯一发生的事情是"搜索"按钮被添加到菜单本身而不是ActionBar(见下面的截图)。
这是我的search.java(显示搜索按钮的活动):
public class search extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu_search, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
这是我的menu_search.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:title="search"
android:id="@+id/action_search"
android:icon="@drawable/searchicon"
android:orderInCategory="100"
android:showAsAction="always"/>
</menu>
任何帮助都是相关的!提前谢谢!
答案 0 :(得分:1)
您正在使用appcompat-v7
。您需要将android:showAsAction
属性更改为app:showAsAction
属性,并定义app
命名空间(xmlns:app="http://schemas.android.com/apk/res-auto"
)。
这会给你类似的东西:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="search"
android:id="@+id/action_search"
android:icon="@drawable/searchicon"
android:orderInCategory="100"
app:showAsAction="always"/>
</menu>
此外,您可能不需要android:orderInCategory
。
答案 1 :(得分:0)
你应该做的是添加:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_search"
android:title="search"
app:showAsAction="always"
android:actionViewClass="android.widget.SearchView"/>