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

请帮忙看一下为什么程序会崩溃

public class MainActivity extends AppCompatActivity {

   private ListView listView;
   private SimpleAdapter simpleAdapter;
   private List<Map<String,Object>> datalist;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       listView=(ListView)findViewById(R.id.listView);
       simpleAdapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","textview"},new int[]{R.id.pic,R.id.textView});
       listView.setAdapter(simpleAdapter);
   }
   private List<Map<String,Object>> getData()
   {
       for(int i=0;i<10;i++) {
           Map<String,Object> map=new HashMap<String,Object>();
           map.put("pic", R.mipmap.ic_launcher);
           map.put("textview", "text"+i);
           datalist.add(map);
       }
       return datalist;
   }
}



 错误日志:

Process: com.example.myapplication, PID: 18831

                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference

                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2460)

                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2522)

                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:167)

                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417)

                                                                               at android.os.Handler.dispatchMessage(Handler.java:111)

                                                                               at android.os.Looper.loop(Looper.java:179)

                                                                               at android.app.ActivityThread.main(ActivityThread.java:5543)

                                                                               at java.lang.reflect.Method.invoke(Native Method)

                                                                               at java.lang.reflect.Method.invoke(Method.java:372)

                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)

                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)

                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference

                                                                               at com.example.myapplication.MainActivity.getData(MainActivity.java:34)

                                                                               at com.example.myapplication.MainActivity.onCreate(MainActivity.java:25)

                                                                               at android.app.Activity.performCreate(Activity.java:5975)

                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)

                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)

                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2522) 

                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:167) 

                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417) 

                                                                               at android.os.Handler.dispatchMessage(Handler.java:111) 

                                                                               at android.os.Looper.loop(Looper.java:179) 

                                                                               at android.app.ActivityThread.main(ActivityThread.java:5543) 

                                                                               at java.lang.reflect.Method.invoke(Native Method) 

                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 

                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955) 

                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)


正在回答

1 回答

datalist = new ArrayList<Map<String,Object>>添加到getData()调用前面去。

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

慕虎7788025 提问者

还是不行。。
2016-07-12 回复 有任何疑惑可以回复我~
#2

慕虎7788025 提问者

可以了,谢谢,但是请问为什么呢,老师并没有加上这句话啊
2016-07-12 回复 有任何疑惑可以回复我~
#3

sorgs 回复 慕虎7788025 提问者

老师有说过哦。但是我有,还是不能显示 不知道为什啊
2016-07-18 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请帮忙看一下为什么程序会崩溃

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信