2016-03-12 4 views
1

Мой код работает исправно, но я беспокоюсь о предупреждении, которое дает студия Android при проверке кода в строке рядом с комментарием (// следующая строка) в следующем коде операции. В нем говорится, что он может вызывать исключение нулевого указателя. Я не могу понять причину этого. Я просмотрел некоторые другие ответы, связанные с тем же вопросом, но не смог найти точную причину. Вот снимок сообщения от android studio.NullPointerException в методе setAdapter в ListView

enter image description here Код активности

package com.example.kedee.mistu.services; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import com.example.kedee.mistu.R; 

public class Test extends AppCompatActivity { 
    private String[] catNames= {"A","E","T","E","S","F","M","P","S","E","C","H","M","Others"}; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 
     ListView listView=(ListView)findViewById(R.id.test_listView); 
     //next line 
     listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,catNames)); 
     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    } 
} 

Компоновка Код

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.kedee.mistu.services.Test"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/test_listView" 
     android:dividerHeight="2dp" 
     > 

    </ListView> 

</RelativeLayout> 

ответ

1

Я не уверен, но вы можете попробовать ниже код

if(listView!=null) 
{ 
    listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,catNames)); 
     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
} 

попробовать использовать

ActivityName.this or getApplicationContext() 
+0

Да, попробовал, но все равно получал одно и то же сообщение ..:/ –

+0

Yup, это сработало :), но как мог list view когда-либо быть нулевым? –

+0

Если пользователь не определяет, это вообще происходит с новым разработчиком! –

Смежные вопросы