ActionBar не работает при расширении ListActivity

У меня запутанная проблема. У меня есть MainActivity с двумя действиями: обновление и выход из системы. Проблема в том, что когда я запускаю действие, которое расширяет ListActivity, панель действий не появляется . Ниже у меня есть 2 изображения с двумя разными типами расширения в MainActivity

Расширение примера ActionBarActivity

public class MainActivity extends ActionBarActivity 

Ссылка на изображение: СМОТРЕТЬ ИЗОБРАЖЕНИЕ

При расширении ListActivity результат будет таким же, как на рисунке ниже. В основном я хочу сделать основной вид деятельности с помощью ListView и панели ction, чтобы пользователь мог обновить и выйти из системы с помощью панели действий . Но, похоже, это не работает, и мне нужна ваша помощь . Я пробовал искать в Интернете, я не мог найти ничего, что помогло.

 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 "ActionBar не работает при расширении ListActivity"

Это должно быть связано с вашей темой. Шаблоны действий поддерживаются только по темам после голограммы.

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"> 

Или другую тему или по вашему выбору. Перейдите по ссылке Tachyonflux и посмотрите доступные варианты. Существуют различные параметры по умолчанию, но вы также можете создавать свои собственные.