我只是一名初学者,因此我尝试专门制作Android应用以了解menu.xml
和ActionBar
。所以我尝试添加MenuItems
,这是我的menu.xml
代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:PizzaApp="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity">
<item android:id="@+id/action_order_pizza"
android:icon="@drawable/order_pizza"
android:title="@string/order_pizza"
android:orderInCategory="1"
PizzaApp:showAsAction="ifRoom"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="2"
PizzaApp:showAsAction="never"/>
</menu>
由于我希望自己的应用使用Material design
,我实际上并没有extend
AppCompatActivity
,但我使用了support.v7.app
依赖,只是为了使应用程序兼容。既然support.v7.app
库没有包含showAsAction
函数,我在menu.xml中使用了AppName
而不是android
。但问题是,在action_setting
项旁边,action_order_pizza
也出现在溢出而不是 ActionBar 中。请帮忙!这是MainActivity
代码:
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
提前致谢!
注意:如果我使用
android
代替PizzaApp
,Android Studio会显示错误,但是当您运行该应用时,它仍能正常运行!
答案 0 :(得分:1)
如果您想使用AppCompat的任何部分,例如app:showAsAction
,您应该扩展AppCompatActivity
并使用Theme.AppCompat
。 Theme.AppCompat
extends Theme.Material
并允许您在所有API 9+设备上使用材料设计。