您的位置:首页 > 其它

actionbar的showAsAction属性问题

2015-08-27 16:04 465 查看

问题

某日根据网上教程编写了一个测试用的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>




一切正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: