list.add(map)空指针报错怎么办

乔伊苏 2015-10-03 02:33:38
package com.example.joeys.myapplication;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.SimpleAdapter;

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

public class MainActivity extends Activity {

private SimpleAdapter simp_adapter;
private List<Map<String, Object>> list;
private ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

simp_adapter = new SimpleAdapter(this, getData(), R.layout.test, new String[]{"iv", "text"}, new int[]{R.id.iv, R.id.text});//这行也报错
list = new ArrayList<Map<String, Object>>();
listview.setAdapter(simp_adapter);

}

private List<Map<String, Object>> getData() {
for (int i = 0; i < 10; i++) {
Map<String,Object>map=new HashMap<String, Object>();
map.put("iv",R.drawable.cons);
map.put("text","ceshi"+i);
list.add(map);//这行报错

}
return list;
}
}

错误信息如下: 跟着视频写一个简单的simpleAdapter但是就一直出错怎么办啊
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.joeys.myapplication.MainActivity.getData(MainActivity.java:36)
at com.example.joeys.myapplication.MainActivity.onCreate(MainActivity.java:25)
...全文
457 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
leobert_lan 2015-10-06
  • 打赏
  • 举报
回复
代码执行次序的问题啊,你初始化list迟了,放到构造适配器前面,获取适配器实例时已经调用getdata方法了,然而list还未初始化。
乔伊苏 2015-10-03
  • 打赏
  • 举报
回复
谢谢大大!!新人感激不尽
__sumile 2015-10-03
  • 打赏
  • 举报
回复
你在getData的时候,list = new ArrayList<Map<String, Object>>();这句话还没有运行。list为空。所以把这句话放到getData上面就可以了。

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧