Unfortunately,XXX has stopped.自己檢查了一下沒發現錯誤,求大神解答。
代碼如下:
package com.example.android_gridview;
import android.support.v7.app.ActionBarActivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.GridView;
import android.widget.SimpleAdapter;
public class MainActivity extends ActionBarActivity {
?? ?private GridView gridView;
?? ?private List<Map<String,Object>>datalist;
?? ?private int[] icon={R.drawable.address_book,R.drawable.calendar,
?? ??? ??? ?R.drawable.camera,R.drawable.clock,R.drawable.games_control,
?? ??? ??? ?R.drawable.messenger,R.drawable.ringtone,R.drawable.settings,
?? ??? ??? ?R.drawable.speech_balloon,R.drawable.weather,R.drawable.world,
?? ??? ??? ?R.drawable.youtube};
?? ?private String[] iconName={"電子書","日歷","照相機","鬧鐘","游戲","短信","鈴聲","設置",
?? ??? ??? ?"設置","通訊錄","天氣","瀏覽器","視頻"};
?? ?private SimpleAdapter adapter;
?? ?
?? ?@Override
?? ?protected void onCreate(Bundle savedInstanceState) {
?? ??? ?super.onCreate(savedInstanceState);
?? ??? ?setContentView(R.layout.activity_main);
?? ??? ?gridView=(GridView) findViewById(R.id.gridView);
?? ??? ?getData();
?? ??? ?adapter= new SimpleAdapter(this, getData(), R.layout.item, new String[]{"image","text"}, new int[]{R.id.image,R.id.text});
?? ??? ?gridView.setAdapter(adapter);
?? ??? ?datalist = new ArrayList<Map<String,Object>>();
?? ?}
?? ?private List<Map<String, Object>> getData() {
?? ??? ?for(int i=0;i<icon.length;i++){
?? ??? ??? ?Map<String,Object>map=new HashMap<String, Object>();
?? ??? ??? ?map.put("image", icon[i]);
?? ??? ??? ?map.put("text", iconName[i]);
?? ??? ??? ?datalist.add(map);
?? ??? ?}
?? ?
?? ??? ?return datalist;
?? ?}
08-01 22:33:00.270: D/AndroidRuntime(932): Shutting down VM
08-01 22:33:00.270: W/dalvikvm(932): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
08-01 22:33:00.310: E/AndroidRuntime(932): FATAL EXCEPTION: main
08-01 22:33:00.310: E/AndroidRuntime(932): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android_gridview/com.example.android_gridview.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.os.Looper.loop(Looper.java:137)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread.main(ActivityThread.java:5103)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at java.lang.reflect.Method.invokeNative(Native Method)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at java.lang.reflect.Method.invoke(Method.java:525)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at dalvik.system.NativeStart.main(Native Method)
08-01 22:33:00.310: E/AndroidRuntime(932): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:102)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at com.example.android_gridview.MainActivity.onCreate(MainActivity.java:29)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.Activity.performCreate(Activity.java:5133)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
08-01 22:33:00.310: E/AndroidRuntime(932): ?? ?... 11 more
2016-08-01
datalist這個應該在用之前就聲明 啊,你都已經setAdapter了,再去聲明datalist還有用嗎??聲明提前聲明,還有就是你getData這個方法用了兩次了,在實例化adapter之前的那個方法去掉就可以了
2016-08-03
你的activity的主題是非法的聲明,大概原因可以是你繼承了v7包下面的activity給你一個網址,你自己參考。
http://blog.csdn.net/lincyang/article/details/42673151