亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將值從 AsyncTask 類的數組列表發送到 Android 中的另一個類?

如何將值從 AsyncTask 類的數組列表發送到 Android 中的另一個類?

慕娘9325324 2021-12-30 16:09:22
我有下一個問題,我嘗試將Arraylist<string>值從 AsyncTask 類發送到其他類調用圖形,但我不知道我做錯了什么以及如何Arraylist<string>在另一個類中獲取值,因為我的代碼有很多 sintaxis 錯誤異步任務類public class fetch  extends AsyncTask<Void,Void,ArrayList<String>> {    //v funcional        @RequiresApi(api = Build.VERSION_CODES.KITKAT)        @Override        protected ArrayList<String> doInBackground(Void... voids) {                    String Id ="";                    String Time ="";                    String Pressure="";                    ArrayList<String> IdArray = new ArrayList<String>();                    ArrayList<String> TimeArray = new ArrayList<String>();                    ArrayList<String> PressureArray = new ArrayList<String>();                    String IdS=""+IdArray;                    String TimeS=""+TimeArray;                    String PresureS=""+PressureArray;                    data.set(1,TimeS);                    data.set(2,TimeS);                    data.set(3,TimeS);            return data;        }        @Override        protected void onPostExecute(ArrayList<String> result){            super.onPostExecute(result);            Graphics.data.setText(data);        }}圖形類 public class Graphics extends AppCompatActivity {        public static TextView data;        @Override        protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.graphics);            Button firstButton = (Button) findViewById(R.id.json);            data = (TextView) findViewById(R.id.msgTxt);            firstButton.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    fetch process = new fetch();                   ArrayList<String> data= process.execute();                   data.get(1);                }            });    }
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

您可以創建一個由您的“圖形”實現的接口,并將其傳遞給您的AsyncTask班級。像這樣


public interface BlaBlaBla {

    void doBla(ArrayList<String> myBla);

}

并在您的“圖形”中:


class Graphics extends AppCompatActivity implements BlaBlaBla {

fetch process = new fetch(this);

}

對于 asyncClass :


public class fetch  extends AsyncTask<Void,Void,ArrayList<String>> {

 //constructor

BlaBlaBla bla;

public fetch(BlaBlaBla bla){

this.bla=bla;

}

//when your task is complete use bla.doBla(pass your array here);

}


查看完整回答
反對 回復 2021-12-30
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

我的解決方案 Fetch 類


public class Fetch  extends AsyncTask<Void,Void,String[][]> {

    public static int KEY = 0;

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)

        @Override

     protected String[][] doInBackground(Void... voids) {

          HttpHandler sh = new HttpHandler();

           String url = "http:xxxxxxx/xxx.json";

           String jsonStr = sh.makeServiceCall(url);

           JSONObject jsonObj = null;

            try {

                jsonObj = new JSONObject(jsonStr);

                int nTiempos=jsonObj.length();

                String[] IdKeyArray = new String[nTie];

        for (int i = 0; i < jsonObj.length(); i++) {

                  JSONObject c = jsonObj.getJSONObject(String.valueOf(i));

                  IdKeyArray[i] = c.getString("Key");

                  String[][] valores={IdKeyArray};

                return valores;

            } catch (JSONException e) {

            e.printStackTrace();

        }

       return null;

   }

}

這是我獲取值的另一個類的“調用”


private String[][] valores;

Fetch process = new Fetch();

  process.execute();

   try {

      valores=process.get();

     } catch (ExecutionException e) {

        e.printStackTrace();

      } catch (InterruptedException e) {

        e.printStackTrace();

      }

      pm.setText(String.valueOf(valores[Fetch.Key][0]));

   }

  }

}


查看完整回答
反對 回復 2021-12-30
  • 2 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號