NullPointerException с простым адаптером в Android

Я использую simpleAdapter для создания списка, однако я получаю эту ошибку:

Caused by: java.lang.NullPointerException
at com.tab.Activity.onCreate(Activity.java:36)

и этот код, который я использую:

ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
 private SimpleAdapter notes;

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

    notes = new SimpleAdapter( 
            this, 
            list,
            R.layout.display_layout,
            new String[] { "line1" },
            new int[] { R.id.text1}  );
   ListView lv = (ListView) findViewById(R.id.listview);
   lv.setAdapter( notes );
}

линия 36 будет

new int[] { R.id.text1}  );

text1 определяется, так почему я получаю ошибку nullpointer?

4 ответа

Решение

Наконец, я решил проблему, внедрив новый SimpleAdapter, следуя этому руководству: http://kurtchen.com/blog/2010/07/30/use-simpleadapter-to-make-a-list-with-icons/

Я думаю, что проблема заключалась в том, что переменная "ArrayList list" была нулевой, и поэтому SimpleAdapter не смог сопоставить какое-либо значение со столбцом "R.id.text1".

Спасибо всем за ваши ответы

Я думаю ценность R.id возвращается ноль. Пытаться:

new int[] { ((R.id !=null && R.id.text1 >-1)?R.id.text1 :-1)};

редактировать

я использую -1 предположить, что ноль может быть допустимым значением.

Попробуй это:

    notes = new SimpleAdapter(this, list, R.layout.display_layout,
            new String[] { "line1" }, new int[] { android.R.id.text1 });

Если оценка

new int[] { R.id.text1 }

приводит к NullPointerException это связано с тем, что R.id нулевой.

Исключение также возникнет, если R.id случилось быть Integer который был null,

Другие вопросы по тегам