Адаптер listview не хочет устанавливать текст

Хорошо, я пытаюсь сделать простое заполнение списка из массива с адаптером, поэтому у меня есть:

открытый класс MainActivity расширяет Activity {

String[] dish = {"soup", "rice", "grecha", "potato"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lunch);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    setContentView(R.layout.lunch);
    ListView lunchLV = (ListView)findViewById(R.id.lunchLV);
    cafeAdapter ca = new cafeAdapter();
    lunchLV.setAdapter(ca);

}


public class cafeAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        return dish.length;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
       view = getLayoutInflater().inflate(R.layout.list, null);
        TextView title = (TextView) findViewById(R.id.title);
        title.setText(dish[i]);
        return view;
    }
}

}

У меня также есть файл list.xml и файл lunch.xml

По некоторым странным причинам title.setText(dish[i]); выдает ошибку и вызывает сбой моей программы. У меня есть элемент с идентификатором "title" в моем XML-файле, но в любом случае java.lang.NullPointerException: попытка вызвать виртуальный метод "void android.widget.TextView.setText(java.lang.CharSequence)" для ссылки на пустой объект.

У вас есть идеи, что я делаю не так?

1 ответ

Решение

Вы должны использовать

TextView title = (TextView) view.findViewById(R.id.title);

Вместо:

 TextView title = (TextView) findViewById(R.id.title);
Другие вопросы по тегам