2016-04-24 2 views
0

Я застрял в этой проблеме последние несколько часов, поэтому любая помощь будет очень оценена. Im получает эту ошибку попытки вызвать виртуальный метод 'недействительный android.widget.ListView.setAdapter (android.widget.ListAdapter)' на нулевой ссылке на объектОшибка Android с setAdapter в android ArrayAdapter

ArrayAdapter класс

public class LocationsAdapter extends ArrayAdapter<String> { 

public LocationsAdapter(Context context, ArrayList<String> locations) { 
    super(context, R.layout.location_list, locations); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater layoutInflater = LayoutInflater.from(getContext()); 
    View customView = layoutInflater.inflate(R.layout.location_list, parent, false); 
    String name = getItem(position); 
    TextView textView = (TextView)customView.findViewById(R.id.locationTF); 
    textView.setText(name); 

    return customView; 
} 

}

activity_maps.xml

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/listViewLocations" /> 

location_list.xml

<TextView 
    android:layout_width="135dp" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/locationTF" 
    android:layout_weight="0.03" /> 

MapsActivity класс

private ArrayAdapter<String> adapter; 
. 
. 
. 
public void initAdapter(){ 
    ArrayList<String> sl = new ArrayList<>(); 
    sl.add("b"); 
    adapter = new LocationsAdapter(this, sl); 

    ListView listView = (ListView) findViewById(R.id.listViewLocations); 
    listView.setAdapter(adapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     } 
    }); 
} 
+0

Пожалуйста показать OnCreate метод вашей деятельности –

+0

OnCreate работает initAdapter() – Bryan

+0

Пожалуйста, измените вопрос ... Где сделал setContentView с XML-файлом, который содержит список, который вы хотите найти? FindViewById может вернуть значение null. Это ваша проблема –

ответ

1

Пожалуйста, убедитесь, что вы используете правильный файл макета перед тем использовать findViewById с любым идентификатором, содержащемся в этом макете.

setContentView(R.layout.activity_maps); 

Ваша проблема findViewById возвращается нуль, потому что не мог найти идентификатор в макете вы использовали

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