我尝试将上下文放在我的静态方法中,如下所示:
public class Menu_SPPAJ extends Activity {
public static void onRefreshList() {
model.requery();
list_terbaru.setAdapter(new Adapter_Spaj_Terbaru(Menu_SPPAJ.this,model));
}
}
但静态方法中未定义Menu_SPPAJ.this
,无论如何如何在静态方法中调用我的上下文?
答案 0 :(得分:2)
您可以将上下文作为参数传递。
虽然看起来你的方法不应该是静态的,因为它正在访问看起来像成员变量的变量。
答案 1 :(得分:2)
您可以将一个参数作为上下文传递,如此
public static void show (Context context){
Toast.makeText(context, "testing toast", Toast.LENGTH_LONG).show();
}
答案 2 :(得分:1)
Use this code for context in static method.
public class Menu_SPPAJ extends Activity {
public static Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
//TODO write your onCreate code
context = this;
}
public static void onRefreshList() {
model.requery();
list_terbaru.setAdapter(new Adapter_Spaj_Terbaru(((Activity) context),model));
}
}
答案 3 :(得分:1)
你改变了这样的静态方法,
public static void onRefreshList(Context context) {
model.requery();
list_terbaru.setAdapter(new Adapter_Spaj_Terbaru(context,model));
}
答案 4 :(得分:0)
您可以简单地使用Singleton Pattern。 如果您实现该模式,您可以使用类内部的所有非静态功能,并且仍然具有类似静态的行为。
答案 5 :(得分:0)
public class Menu_SPPAJ extends Activity {
public static void onRefreshList(Context context) {
model.requery();
list_terbaru.setAdapter(new Adapter_Spaj_Terbaru(context,model));
}
//如果您从创建然后
调用此方法onCreate(){
onRefreshList(this);
}
}