2015-03-02 17 views
-5

我想返回5個可由postExecute使用的doInBackground字符串數組。android-如何返回5個字符串數組在doInBackground?

我似乎無法找到答案。

感謝您的幫助:d

+0

將它們包裝在一個對象或列表中? – 2015-03-02 15:51:33

+0

將它們包裹在一個對象中? – nightrobin 2015-03-02 15:54:02

+0

你是如何解決,包裝或字符串數​​組? – 2015-12-02 00:11:58

回答

2

你能做到這樣

創造儘可能多的性能
public class AASync extends AsyncTask<String[], Void, ArrayList<String[]>> { 

    private ArrayList<String[]> list = new ArrayList<>(); 
    @Override 
    protected ArrayList<String[]> doInBackground(String[]... params) { 
     for(int i=0; i<params.length;i++){ 
      list.add(params[i]); 
     } 
     return list; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<String[]> strings) { 
     super.onPostExecute(strings); 
     list = strings; 
    } 
} 

希望它有幫助!

+1

我會試試這個謝謝:) – nightrobin 2015-03-02 16:06:18

+0

工程就像一個魅力:) – 2018-03-02 16:15:01

0

你可以簡單地包裹你在列表 什麼都想要,你也可以擴展的AsyncTask和你whant

+0

我之前找到了這個,http://developer.android.com/reference/java/sql/Wrapper.html但這是我需要的嗎? – nightrobin 2015-03-02 15:58:46

+0

該類是JDBC類的包裝模式的實際用法。 – 2015-03-02 16:00:35

+0

所以不用就這樣使用它 'ArrayList result = new ArrayList <>(); result.add(str1); ...等 返回結果;' – 2015-03-02 16:02:31

0
class SomeTask extends AsyncTask<Void, Void, ArrayList<String[]>> { 

    private ArrayList<String[]> someArrayString= new ArrayList<String[]>(); 
    @Override 
    protected ArrayList<String[]> doInBackground(Void... params) { 
     for(int i = 0; i < 5; i++) 
      someArrayString.add(new String[]{String.valueOf(i)}); 
     return someArrayString; 
    } 
    @Override 
    protected void onPostExecute(ArrayList<String[]> params){ 
     super.onPostExecute(params); 
     //... 
    } 
}