不知怎的,我无法完成这件事。这就是我到现在为止所做的一切:
主要:
private String myState;
public String getState() {
return myState;
}
public void setState(String s) {
myState = s;
}
异步:
Main appState = ((Main)getApplicationContext());
String state = appState.getState();
错误:No enclosing instance of the type Main is accessible in scope
尝试过Helper(Globals)课程。
public class Globals extends Application{
private String test= "1";
}
主要:
private Globals mGlobals;
mGlobals = new Globals();
mGlobals.test = "2";
//Do Async thing
异步:
private Globals mGlobals;
mGlobals = new Globals();
print mGlobals.test;
// (result is 1, should be 2)
还有别的,但不记得好。
尝试了很多事情(退格和del按钮被过度使用:p)
但我不能让一切正常。
异步类没有活动。
答案 0 :(得分:2)
在异步类中声明构造函数,如
public class Task extends AsyncTask<Void,Void,Void>
{
private Context context;
public Task(Context context)
{
this.context=context;
}
}
来自你的主要班级
new Task(this).execute((Void)null);
答案 1 :(得分:1)
尝试直接在AsyncTask构造函数中传递Context,而不是尝试获取Application Context。正如@Mohd Mufiz在他的答案中已提到的那样。
答案 2 :(得分:0)
尝试使用SharedPreferences ...创建并调用String var use ...
String button_name_11 = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname11", "EMPTY");
然后改变,只是......
getSharedPreferences("PREFERENCE", MODE_PRIVATE)
.edit()
.putString("butname11", "NEW_STRING" )
.commit();