为了账号安全,请及时绑定邮箱和手机立即绑定

程序崩溃,什么原因。在线等

package com.example.gridviewdemo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.os.Bundle;
import android.os.Handler;
import android.R.integer;
import android.app.Activity;
import android.view.Menu;
import android.widget.GridView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
            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 simpleAdapter;
	        
		    @Override
		    protected void onCreate(Bundle savedInstanceState) {
		        super.onCreate(savedInstanceState);
		        setContentView(R.layout.activity_main);
		        //1.准备数据
		       //2.创建适配器
		        //3.视图加载适配器
		        //4.绑定监听器
		        
		        gridView  =  (GridView) findViewById(R.id.gridView);
		        getData();
		        datalist  =  new ArrayList<Map<String,Object>>();
		        simpleAdapter = new SimpleAdapter(this ,getData(), R.layout.item, new String[]{"imageView","textView"}, new int[]{R.id.imageView,R.id.textView});
		      gridView.setAdapter(simpleAdapter);
		    }
		    
			private List<Map<String, Object>> getData() {
				for (int i = 0; i < icon.length; i++) {
				Map<String,Object > map = new HashMap<String, Object>();
				map.put("imageView", icon[i] );
				map.put("textViews", iconName[i]);
				datalist.add(map);
					}
				return datalist;
			}


 
    
}


正在回答

3 回答

第一 

 gridView  =  (GridView) findViewById(R.id.gridView);

                getData();//这个可以不用 因为后面SimpleAdapter里面已经包含

第二    map.put("textViews", iconName[i]);// 这里面的key 跟你上面定义的不一样 多写了一个s


0 回复 有任何疑惑可以回复我~

空指针,是因为datalist在add的时候还没有创建,把下面两行代码颠倒一下位置

getData();
datalist  =  new ArrayList<Map<String,Object>>();


1 回复 有任何疑惑可以回复我~

这是logcat的错误信息



10-03 01:45:23.023: W/dalvikvm(1003): threadid=1: thread exiting with uncaught exception (group=0xb4a9ab90)

10-03 01:45:23.043: E/AndroidRuntime(1003): FATAL EXCEPTION: main

10-03 01:45:23.043: E/AndroidRuntime(1003): Process: com.example.gridviewdemo, PID: 1003

10-03 01:45:23.043: E/AndroidRuntime(1003): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gridviewdemo/com.example.gridviewdemo.MainActivity}: java.lang.NullPointerException

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread.access$700(ActivityThread.java:135)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.os.Handler.dispatchMessage(Handler.java:102)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.os.Looper.loop(Looper.java:137)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread.main(ActivityThread.java:4998)

10-03 01:45:23.043: E/AndroidRuntime(1003): at java.lang.reflect.Method.invokeNative(Native Method)

10-03 01:45:23.043: E/AndroidRuntime(1003): at java.lang.reflect.Method.invoke(Method.java:515)

10-03 01:45:23.043: E/AndroidRuntime(1003): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)

10-03 01:45:23.043: E/AndroidRuntime(1003): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

10-03 01:45:23.043: E/AndroidRuntime(1003): at dalvik.system.NativeStart.main(Native Method)

10-03 01:45:23.043: E/AndroidRuntime(1003): Caused by: java.lang.NullPointerException

10-03 01:45:23.043: E/AndroidRuntime(1003): at com.example.gridviewdemo.MainActivity.getData(MainActivity.java:49)

10-03 01:45:23.043: E/AndroidRuntime(1003): at com.example.gridviewdemo.MainActivity.onCreate(MainActivity.java:38)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.Activity.performCreate(Activity.java:5243)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

10-03 01:45:23.043: E/AndroidRuntime(1003): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)

10-03 01:45:23.043: E/AndroidRuntime(1003): ... 11 more

10-03 01:46:00.653: W/dalvikvm(1042): threadid=1: thread exiting with uncaught exception (group=0xb4a9ab90)

10-03 01:46:00.723: E/AndroidRuntime(1042): FATAL EXCEPTION: main

10-03 01:46:00.723: E/AndroidRuntime(1042): Process: com.example.gridviewdemo, PID: 1042

10-03 01:46:00.723: E/AndroidRuntime(1042): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gridviewdemo/com.example.gridviewdemo.MainActivity}: java.lang.NullPointerException

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread.access$700(ActivityThread.java:135)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.os.Handler.dispatchMessage(Handler.java:102)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.os.Looper.loop(Looper.java:137)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread.main(ActivityThread.java:4998)

10-03 01:46:00.723: E/AndroidRuntime(1042): at java.lang.reflect.Method.invokeNative(Native Method)

10-03 01:46:00.723: E/AndroidRuntime(1042): at java.lang.reflect.Method.invoke(Method.java:515)

10-03 01:46:00.723: E/AndroidRuntime(1042): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)

10-03 01:46:00.723: E/AndroidRuntime(1042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

10-03 01:46:00.723: E/AndroidRuntime(1042): at dalvik.system.NativeStart.main(Native Method)

10-03 01:46:00.723: E/AndroidRuntime(1042): Caused by: java.lang.NullPointerException

10-03 01:46:00.723: E/AndroidRuntime(1042): at com.example.gridviewdemo.MainActivity.getData(MainActivity.java:49)

10-03 01:46:00.723: E/AndroidRuntime(1042): at com.example.gridviewdemo.MainActivity.onCreate(MainActivity.java:38)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.Activity.performCreate(Activity.java:5243)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

10-03 01:46:00.723: E/AndroidRuntime(1042): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)

10-03 01:46:00.723: E/AndroidRuntime(1042): ... 11 more

10-03 01:48:18.673: W/dalvikvm(1105): threadid=1: thread exiting with uncaught exception (group=0xb4a9ab90)

10-03 01:48:18.693: E/AndroidRuntime(1105): FATAL EXCEPTION: main

10-03 01:48:18.693: E/AndroidRuntime(1105): Process: com.example.gridviewdemo, PID: 1105

10-03 01:48:18.693: E/AndroidRuntime(1105): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gridviewdemo/com.example.gridviewdemo.MainActivity}: java.lang.NullPointerException

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread.access$700(ActivityThread.java:135)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.os.Handler.dispatchMessage(Handler.java:102)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.os.Looper.loop(Looper.java:137)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread.main(ActivityThread.java:4998)

10-03 01:48:18.693: E/AndroidRuntime(1105): at java.lang.reflect.Method.invokeNative(Native Method)

10-03 01:48:18.693: E/AndroidRuntime(1105): at java.lang.reflect.Method.invoke(Method.java:515)

10-03 01:48:18.693: E/AndroidRuntime(1105): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)

10-03 01:48:18.693: E/AndroidRuntime(1105): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

10-03 01:48:18.693: E/AndroidRuntime(1105): at dalvik.system.NativeStart.main(Native Method)

10-03 01:48:18.693: E/AndroidRuntime(1105): Caused by: java.lang.NullPointerException

10-03 01:48:18.693: E/AndroidRuntime(1105): at com.example.gridviewdemo.MainActivity.getData(MainActivity.java:50)

10-03 01:48:18.693: E/AndroidRuntime(1105): at com.example.gridviewdemo.MainActivity.onCreate(MainActivity.java:39)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.Activity.performCreate(Activity.java:5243)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

10-03 01:48:18.693: E/AndroidRuntime(1105): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)

10-03 01:48:18.693: E/AndroidRuntime(1105): ... 11 more

10-03 01:48:41.503: W/dalvikvm(1144): threadid=1: thread exiting with uncaught exception (group=0xb4a9ab90)

10-03 01:48:41.513: E/AndroidRuntime(1144): FATAL EXCEPTION: main

10-03 01:48:41.513: E/AndroidRuntime(1144): Process: com.example.gridviewdemo, PID: 1144

10-03 01:48:41.513: E/AndroidRuntime(1144): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gridviewdemo/com.example.gridviewdemo.MainActivity}: java.lang.NullPointerException

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread.access$700(ActivityThread.java:135)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.os.Handler.dispatchMessage(Handler.java:102)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.os.Looper.loop(Looper.java:137)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread.main(ActivityThread.java:4998)

10-03 01:48:41.513: E/AndroidRuntime(1144): at java.lang.reflect.Method.invokeNative(Native Method)

10-03 01:48:41.513: E/AndroidRuntime(1144): at java.lang.reflect.Method.invoke(Method.java:515)

10-03 01:48:41.513: E/AndroidRuntime(1144): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)

10-03 01:48:41.513: E/AndroidRuntime(1144): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

10-03 01:48:41.513: E/AndroidRuntime(1144): at dalvik.system.NativeStart.main(Native Method)

10-03 01:48:41.513: E/AndroidRuntime(1144): Caused by: java.lang.NullPointerException

10-03 01:48:41.513: E/AndroidRuntime(1144): at com.example.gridviewdemo.MainActivity.getData(MainActivity.java:50)

10-03 01:48:41.513: E/AndroidRuntime(1144): at com.example.gridviewdemo.MainActivity.onCreate(MainActivity.java:39)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.Activity.performCreate(Activity.java:5243)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

10-03 01:48:41.513: E/AndroidRuntime(1144): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)

10-03 01:48:41.513: E/AndroidRuntime(1144): ... 11 more

10-03 01:50:50.303: W/dalvikvm(1192): threadid=1: thread exiting with uncaught exception (group=0xb4a9ab90)

10-03 01:50:50.333: E/AndroidRuntime(1192): FATAL EXCEPTION: main

10-03 01:50:50.333: E/AndroidRuntime(1192): Process: com.example.gridviewdemo, PID: 1192

10-03 01:50:50.333: E/AndroidRuntime(1192): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gridviewdemo/com.example.gridviewdemo.MainActivity}: java.lang.NullPointerException

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread.access$700(ActivityThread.java:135)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.os.Handler.dispatchMessage(Handler.java:102)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.os.Looper.loop(Looper.java:137)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread.main(ActivityThread.java:4998)

10-03 01:50:50.333: E/AndroidRuntime(1192): at java.lang.reflect.Method.invokeNative(Native Method)

10-03 01:50:50.333: E/AndroidRuntime(1192): at java.lang.reflect.Method.invoke(Method.java:515)

10-03 01:50:50.333: E/AndroidRuntime(1192): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)

10-03 01:50:50.333: E/AndroidRuntime(1192): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

10-03 01:50:50.333: E/AndroidRuntime(1192): at dalvik.system.NativeStart.main(Native Method)

10-03 01:50:50.333: E/AndroidRuntime(1192): Caused by: java.lang.NullPointerException

10-03 01:50:50.333: E/AndroidRuntime(1192): at com.example.gridviewdemo.MainActivity.getData(MainActivity.java:50)

10-03 01:50:50.333: E/AndroidRuntime(1192): at com.example.gridviewdemo.MainActivity.onCreate(MainActivity.java:39)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.Activity.performCreate(Activity.java:5243)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

10-03 01:50:50.333: E/AndroidRuntime(1192): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)

10-03 01:50:50.333: E/AndroidRuntime(1192): ... 11 more


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111140    人
  • 解答问题       1560    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

程序崩溃,什么原因。在线等

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号