1
Я хочу получить доступ к переменной из активности в классе BaseAdapter
, с которым я установил ListView
активности. Но я всегда получаю эту ошибку:Доступ к переменной активности из базового адаптера
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Integer.toString()' on a null object reference
Эти соответствующие части моего кода:
public class GetAllEntrysListViewAdapter extends BaseAdapter {
Integer markerID;
PinboardActivity pinboard = new PinboardActivity();
public GetAllEntrysListViewAdapter(JSONArray jsonArray, Context context) {
this.dataArray = jsonArray;
this.context= context;
//I want to get the markerID variable from pinboardActivity:
markerID = pinboard.markerID;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//...
public Cursor getLikes(DbHelper dbh) {
//The following line is the one the error occurs
String args[] = {markerID.toString(), pos};
//...
}
Но в pinboardActivity переменная не является нулевой – maidi
Создается новый экземпляр активности! 'PinboardActivity pinboard = new PinboardActivity();' создает новую пустую активность, а 'markerID 'равно null. В идеале вы никогда не должны создавать новый экземпляр такого действия. Лучший способ - передать «markerID» в конструкторе адаптера. – Antrromet
Спасибо, это мне очень помогло! – maidi