Я создал класс, расширяющий Application, чтобы в моем приложении были глобальные переменные.Я использую их, используя
((GlobalVars)getApplicationContext())
, но это не компилируется, когда я пытаюсь получить к нему доступ в моем настраиваемом адаптере:
The method getApplicationContext() is undefined for the type FriendAdapter
Почему?Как я могу получить доступ к своим глобальным переменным в моем адаптере?
Спасибо
GlobalVars
public class GlobalVars extends Application {
private ArrayList<String> selectFriendList = new ArrayList<String>();
public void addSelectedFriend(String fb_id) {
this.selectFriendList.add(fb_id);
}
public void removeSelectedFriend(String fb_id) {
this.selectFriendList.remove(fb_id);
}
public boolean isFriendSelected(String fb_id) {
return this.selectFriendList.contains(fb_id);
}
}
FriendAdapter
public class FriendAdapter extends ArrayAdapter<Friend> implements OnClickListener {
private ArrayList<Friend> items;
public FriendAdapter(Context context, int textViewResourceId,
ArrayList<Friend> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.contact_row, null);
}
Friend f = items.get(position);
if (f != null) {
String name = f.name;
TextView tt = (TextView) v.findViewById(R.id.contact_name);
tt.setText(name);
CheckBox bCheck = (CheckBox) v.findViewById(R.id.checkbox);
bCheck.setTag(f.fb_id);
if (((GlobalVars)getApplicationContext()).isFriendSelected(f.fb_id))
bCheck.setChecked(true);
bCheck.setOnClickListener(this);
}
return v;
}
@Override
public void onClick(View v) {
...
}
}