列表活动未开始

时间:2017-05-13 03:43:03

标签: android listview android-activity arraylist

private ListView listView;
private List<String> userNames,desc,lat,lon,image, placeNames;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_places_list);
    setTitle("Places List");

    listView=(ListView) findViewById(R.id.placesListView);
    userNames=new ArrayList<String>();
    placeNames = new ArrayList<String>();
    desc=new ArrayList();image=new ArrayList();
    lat=new ArrayList();lon=new ArrayList();



    userNames=getIntent().getStringArrayListExtra("userNames");
    placeNames=getIntent().getStringArrayListExtra("placeNames");
    desc=getIntent().getStringArrayListExtra("desc");
    image=getIntent().getStringArrayListExtra("image");
    lat=getIntent().getStringArrayListExtra("lat");
    lon=getIntent().getStringArrayListExtra("lon");

    final ArrayAdapter arrayAdapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,userNames);
    listView.setAdapter(arrayAdapter);

java.lang.NullPointerException:尝试调用接口方法&#39; int java.util.List.size()&#39;在null对象referencejava.util.List.size()&#39;在null对象引用上 如何避免异常?

2 个答案:

答案 0 :(得分:0)

我认为当您尝试在适配器中设置userNames时,只会因为您将userNames列表设为null而首先检查然后设置如下

if(userNames!=null){
final ArrayAdapter arrayAdapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,userNames);
    listView.setAdapter(arrayAdapter);
}

答案 1 :(得分:0)

Now the app is not crashing , but list isn't displaying. 
I am able to display values in invoking activity.    
    `enter code here`
if(userNames.size()>0)
{
    Log.i("OOOOOOO",userNames.get(0)+"'"+userNames.get(1));
}        
Intent intent=new Intent(ViewActivity.this,PlacesListActivity.class);        intent.putStringArrayListExtra("userNames",userNames);intent.putStringArrayListExtra("placeNames",placeNames);
                intent.putStringArrayListExtra("desc",desc);intent.putStringArrayListExtra("image",image);
                intent.putStringArrayListExtra("lat",lat);intent.putStringArrayListExtra("lon",lon);
                startActivity(new Intent(ViewActivity.this,PlacesListActivity.class));