Android:在另一个中访问一个类变量数据(通过文件或公共变量)

时间:2016-06-18 16:47:24

标签: java android mysql sqlite

我试图将我的mysql数据库中的数据导入到Android应用程序中,因此即使手机未连接到互联网也可以使用它。为此,我使用asynctask在后台运行。现在问题是这个代码是在其他类中编写的,并且数据存储在该类的变量中。所以我根本无法访问该类外部变量的内容。我已经尝试了所有的东西,比如将它分配给同一类型的静态变量,这是其他类,将数据写入文件,共享偏好,但由于代码实际上是一种函数,我得到文件操作和共享首选项的错误。我的代码如下:     public static boolean flag = false,otpStatus = false,otpcheckDone = false;     public StaticUserUser fromClient,fromServer;     public static String resp;     SharedPreferences共享偏好;

public static class LongOperation extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
        if (getUserData) {
            getUserData = false;
            String METHOD_NAME = "user";
            SoapObject request = new SoapObject(
                    CommonData.NAMESPACE, METHOD_NAME);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(
                    CommonData.URL);
            try {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
                resp = resultsRequestSOAP
                        .getPrimitivePropertyAsString("return");
                upd = (UpdateData) stringToObject(resp);
                MainActivity.upd = upd;
                LoginActivity.setupd((UpdateData) stringToObject(resp));
                LoginActivity.upd = upd;
                addtoDatabase ad =new addtoDatabase(null, null, null, 1);
                addtoDatabase.firstTime=true;
                ad.addData(upd);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

请注意,UpdateData是从库文件访问的类。休息一切正常,我得到回应和所有,但我只是无法访问变量,这里&#39; upd&#39;,在任何地方以外。正如您所看到的,我已经尝试将其存储在另一个类“LoginActivity&#39;变量LoginActivity.upd,但即使这样说该对象为null,尽管我可以看到原始数据&#34; upd&#34;当我做sysout时

所以我需要一种方法来访问&#34; upd&#34;课外变量。 我使用:

调用该函数
CommonData.getUserData=true;
lo = new LongOperation();
lo.execute("");

0 个答案:

没有答案