2 回答

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);
}

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]));
}
}
}
添加回答
舉報