扩展ListActivity时,ActionBar不起作用

我有一个令人困惑的问题。 我有一个MainActivity与2动作:更新和注销。 问题是当我运行扩展ListActivity行为栏没有出现的活动 。 下面我在MainActivity中有2个不同的扩展types的图像

扩展ActionBarActivity示例

public class MainActivity extends ActionBarActivity 

链接到图像:看图像

通过扩展 ListActivity ,结果与下图中相同。 基本上我想用ListView和一个ction bar来做主要的活动 ,这样用户就可以使用操作栏更新注销 。 但它似乎不起作用,我需要你的帮助 。 我试图在网上search,我找不到任何帮助。

 public class MainActivity extends ListActivity 

链接到图像:看图像

在这里你可以看到我的清单文件:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.florin.statusapp" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="21"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".RegisterActivity" android:label="@string/title_activity_register" > </activity> <activity android:name=".LoginActivity" android:label="@string/title_activity_login" > </activity> <activity android:name=".UpdateStatusActivity" android:label="@string/title_activity_update_status" > </activity> </application> </manifest> 

我的MainActivity.java

 public class MainActivity extends ListActivity{ private List<ParseObject> mStatusObjects; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Enable Local Datastore. Parse.initialize(this, "foo", "bar"); ParseUser currentUser = ParseUser.getCurrentUser(); if (currentUser != null) { } else { // show the login screen Intent toLoginActivity = new Intent(MainActivity.this, LoginActivity.class); startActivity(toLoginActivity); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.menu.menu_main, menu); //return true; MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, 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 switch (id) { case R.id.updateStatus: // take user to update activity Intent toMainActivityIntent = new Intent(MainActivity.this, UpdateStatusActivity.class); startActivity(toMainActivityIntent); break; case R.id.LogoutUser: //Log out user ParseUser.logOut(); // take user to login activity Intent toLoginActivityIntent = new Intent(MainActivity.this, LoginActivity.class); startActivity(toLoginActivityIntent); break; } return super.onOptionsItemSelected(item); } 

和操作栏的menu_main.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.florin.statusapp.MainActivity"> <item android:id="@+id/updateStatus" android:title="Update" app:showAsAction="always" /> <item android:id="@+id/LogoutUser" android:title="Logout" app:showAsAction="never" /> </menu> 

Solutions Collecting From Web of "扩展ListActivity时,ActionBar不起作用"

这应该与你的主题有关。 动作条只在holo后支持主题。

http://developer.android.com/guide/topics/ui/actionbar.html#Adding

你的styles.xml可能有这样的:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

您可以将其更改为使用全息主题:

 <style name="AppTheme" parent="android:Theme.Holo"> 

正如Tachyonflux所说,在API 11及更高版本中,操作栏包含在所有使用Theme.Holo或其后代之一的活动中

尝试将以下内容添加到您的AndroidManifest.xml中

 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Holo"> 

或另一个主题或您的select。 转到Tachyonflux的链接,看看可用的选项。 有各种默认选项,但您也可以创build自己的。