Ash*_*man 32 android android-actionbar
我试图在我的应用程序中实现一个操作栏.
menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/itemAdd"
android:showAsAction="ifRoom|withText"
android:title="ADD">
</item>
<item
android:id="@+id/itemRefresh"
android:showAsAction="ifRoom|withText"
android:title="REFRESH">
</item>
<item
android:id="@+id/itemHelp"
android:title="HELP">
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
并创建菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)

但即使minSdkVersion是11,它也没有显示动作栏.这是什么原因?
Sat*_*esh 85
在androidManifest文件中删除动作栏活动的主题.现在它会起作用......
<application
android:allowBackup="true"
android:icon="@drawable/tasktodo"
android:label="@string/app_name"
>
Run Code Online (Sandbox Code Playgroud)
不要在应用程序清单文件中添加任何主题.如果您添加了一个,请删除并尝试运行它...
您必须将Activity的样式设置为,Theme.Holo或将其样式之一设置为显示ActionBar。如果要保持向后兼容,请在Activity的onCreate中调用setTheme:
setTheme(android.R.style.Theme_Holo);
Run Code Online (Sandbox Code Playgroud)
具有这样的清单的应用程序
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.Actionbartest"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11" />
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
Menu.xml 像这样
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/itemAdd"
android:showAsAction="ifRoom|withText"
android:title="ADD">
</item>
<item
android:id="@+id/itemRefresh"
android:showAsAction="ifRoom|withText"
android:title="REFRESH">
</item>
<item
android:id="@+id/itemHelp"
android:title="HELP">
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
和这样的活动
package com.example.Actionbartest;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
看起来像这样。

您确定您的手机或模拟器运行的是 Android 3.0 或更高版本吗?如果没有,您最终将得到屏幕截图。
要在旧设备上启用 Actionbar,您应该使用 AppCompat/support 库 ( https://developer.android.com/tools/support-library/features.html )
在类中将Activity更改为AppCompatActivity。如果您想快速添加它,那应该是最简单的。我将为Android操作系统新手添加代码:
public class YourActivity extends Activity
Run Code Online (Sandbox Code Playgroud)
进入
public class YourActivity extends AppCompatActivity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66943 次 |
| 最近记录: |