2014-01-23 26 views
0

行动起来吧,当我试图按照教程@Android的问题将在Eclipse

Add Up Button for Low-level Activities

下面添加一个Up按钮的活动是我的代码:

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

回答

1

作为参考在Setting Up the Action Bar

在你的清单文件,更新要么<application>元素或个人<activity>元素使用Theme.AppCompat主题之一。例如:

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