问题
某日根据网上教程编写了一个测试用的activity用来演示actionbar,然而,出了一些问题。
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:app="http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
app:showAsAction="always"
android:title="编辑"/>
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_action_delete"
app:showAsAction="always"
android:title="删除"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_setting"
app:showAsAction="always"
android:title="设置"/>
</menu>
activity的代码如下:
package com.app.activities;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
/**
* Created by Administrator on 2015/8/27.
*/
public class test_actionbar extends Activity {
private ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_actionbar);
actionBar=getActionBar();
actionBar.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_test, menu);
//return true;
return super.onCreateOptionsMenu(menu);
}
}
界面如下:
不得其解。
后来将menu。xml的showAsAction前缀修改了一下,变成android,如下:
<?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:app="http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:showAsAction="always"
android:title="编辑"/>
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_action_delete"
android:showAsAction="always"
android:title="删除"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_setting"
android:showAsAction="always"
android:title="设置"/>
</menu>
无视报错,继续运行,结果:
但查阅了种种文章,一般解决方案都是app:showAsAction针对的是ActionBarActivity,于是就有了这个:
package com.app.activities;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
/**
* Created by Administrator on 2015/8/27.
*/
public class test_actionbar extends ActionBarActivity {
private ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_actionbar);
actionBar=getActionBar();
actionBar.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_test, menu);
//return true;
return super.onCreateOptionsMenu(menu);
}
}
<?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:app="http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
app:showAsAction="always"
android:title="编辑"/>
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_action_delete"
app:showAsAction="always"
android:title="删除"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_setting"
app:showAsAction="always"
android:title="设置"/>
</menu>
一切正常。