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
,