如何从asynctask
获取2个数组列表
(1 String
,1 Integer
)并在Mainactivity
中打印它们??
这是我的 AsyncTask:
private class ReadJSONFeedTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return readJSONFeed(urls[0]);
}
protected void onPostExecute(String result) {
try {
JSONArray jsonArray = new JSONArray(result);
Log.i("JSON", "Number of surveys in feed: " +jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Toast.makeText(getBaseContext(), jsonObject.getString("city"),Toast.LENGTH_SHORT).show();
x.setStation_name(jsonObject.getString("city"));
x.setStation_petrol_amount(jsonObject.getInt("amount"));
}
System.out.println("*******"+x.getStation_name());
System.out.println("*******"+x.getStation_petrol_amount());
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我在 system.out.print
>> 中的输出,没问题。
这是 my_Data 类:
public ArrayList<String> city = new ArrayList<>() ;
public ArrayList<Integer> amount = new ArrayList<>() ;
public void setStation_petrol_amount(int station_petrol_amount) {
amount.add(station_petrol_amount);
}
public void setStation_name(String station_name)
{
city.add(station_name);
}
public ArrayList<String> getStation_name()
{
return city;
}
public ArrayList<Integer> getStation_petrol_amount() {
return amount;
}
我的主要 Activity :
new ReadJSONFeedTask().execute();
ReadJSONFeedTask ob = new ReadJSONFeedTask();
ob.execute("http://192.168.12.1/server/index.php");
System.out.println(">>>>:"+x.getStation_name());
System.out.println(">>>>:"+x.getStation_petrol_amount());
如果system.out.print
>>没有数据,如何获取?
最佳答案
How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class?
查看问题的答案..一旦线程完成工作,您可以将 2 个数组列表作为回调方法的参数传递给被调用的 Activity
在该示例中,应该像这样修改界面
public interface AsyncResponse {
void processFinish(List<String> firstlist,List<Integer> secondlist);}
然后在执行后,您必须将结果数组列表作为参数传递
或者您可以通过替换如下接口(interface)将 x 对象列表传递给被调用的 Activity
public interface AsyncResponse {
void processFinish(List<X> firstlist);}
关于java - 使用 AsyncTask 从 MainActivity 中的 my_Data 类读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29207203/