0

不知何故,我无法完成这件事。这就是我到目前为止所尝试的全部:

  1. 主要

    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

  2. 尝试使用 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)
    
  3. 还有别的东西,但不记得很好。
    尝试了很多东西(退格和删除按钮被过度使用:p)
    但我无法让一切正常工作。

    异步类没有活动。

粘贴代码:http: //pastebin.com/ikcsdL1p

4

3 回答 3

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);
于 2012-11-19T10:07:27.873 回答
1

与其尝试获取 Application Context ,不如尝试直接在 AsyncTask 构造函数中传递 Context 。正如@Mohd Mufiz 在他的回答中已经提到的那样。

于 2012-11-19T10:47:23.233 回答
0

尝试使用 SharedPreferences... 创建和调用 String var 使用 ...

String button_name_11 = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname11", "EMPTY"); 

然后改变,只是...

getSharedPreferences("PREFERENCE", MODE_PRIVATE)
                .edit()
                .putString("butname11", "NEW_STRING" )
                .commit();
于 2012-11-19T10:22:17.493 回答