У меня есть класс с именем BinderData
, который расширяет BaseAdapter
. Я хочу получить контекст базового класса. Я пытался использовать getContext()
, но это не работает в случае BaseAdapter
.
Как я могу получить контекст этого класса?
У меня есть класс с именем BinderData
, который расширяет BaseAdapter
. Я хочу получить контекст базового класса. Я пытался использовать getContext()
, но это не работает в случае BaseAdapter
.
Как я могу получить контекст этого класса?
Еще одно решение:
Если у вас есть родитель, вы можете напрямую получить доступ к контексту, например так:
public class SampleAdapter extends BaseAdapter {
LayoutInflater inflater;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(inflater == null){
Context context = parent.getContext();
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
...
...
return convertView;
}
}
Создайте конструктор, который принимает Context
в качестве одного из своих аргументов, и сохраните его в закрытой переменной.
public class SampleAdapter extends BaseAdapter {
private Context context;
public SampleAdapter(Context context) {
this.context = context;
}
/* ... other methods ... */
}
getApplicationContext()
или this
.
- person Aniket Thakur; 17.03.2015