java - Android在Eclipse中添加操作栏时出现问题

标签 java android eclipse android-actionbar

我尝试按照教程 @ 为 Activity 添加 Up 按钮

Add Up Button for Low-level Activities

以下是我的代码:

// DisplayMessageActivity.java
import android.support.v7.app.ActionBarActivity;
//some other imports    

public class DisplayMessageActivity extends /*Activity*/ActionBarActivity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the message from the intent
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView);
//  setContentView(R.layout.activity_display_message);

    // Show the Up button in the action bar.
    setupActionBar();
}

/**
 * Set up the {@link android.app.ActionBar}, if the API is available.
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }else{
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

// ...
}

我收到以下错误消息

01-23 21:17:24.702: W/dalvikvm(292): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-23 21:17:24.712: E/AndroidRuntime(292): FATAL EXCEPTION: main
01-23 21:17:24.712: E/AndroidRuntime(292): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.DisplayMessageActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.os.Looper.loop(Looper.java:123)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread.main(ActivityThread.java:4627)
01-23 21:17:24.712: E/AndroidRuntime(292):  at java.lang.reflect.Method.invokeNative(Native Method)
01-23 21:17:24.712: E/AndroidRuntime(292):  at java.lang.reflect.Method.invoke(Method.java:521)
01-23 21:17:24.712: E/AndroidRuntime(292):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-23 21:17:24.712: E/AndroidRuntime(292):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-23 21:17:24.712: E/AndroidRuntime(292):  at dalvik.system.NativeStart.main(Native Method)
01-23 21:17:24.712: E/AndroidRuntime(292): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:111)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
01-23 21:17:24.712: E/AndroidRuntime(292):  at com.example.myfirstapp.DisplayMessageActivity.onCreate(DisplayMessageActivity.java:20)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-23 21:17:24.712: E/AndroidRuntime(292):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-23 21:17:24.712: E/AndroidRuntime(292):  ... 11 more

最佳答案

Setting Up the Action Bar 中所述:

In your manifest file, update either the <application> element or individual <activity> elements to use one of the Theme.AppCompat themes. For example:

<activity android:theme="@style/Theme.AppCompat.Light" ... >

关于java - Android在Eclipse中添加操作栏时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319589/

相关文章:

java - 使用java在同一程序中的升序和降序

android - 使用 ChaCha20 加密和解密字符串

android - 如何使用 xCode 继续开发 React Native 项目?

eclipse - HTTP 状态 500 - 无法在 Eclipse 中加载应用程序类错误

java - 缺少 "eclipse-plugin"打包选项

java - 多个 Intent 过滤器到多个 Activity

java - 从命令行 : StackOverFlow 在 Eclipse 中编译但不使用 Javac

android - 没有 Javascript 从移动 Web 到本地应用程序的 Facebook 共享?

c++ - Eclipse CDT : Symbol 'cout' could not be resolved

java - 渲染 Play Framework 2 View