2014-11-02 88 views
0

如何在doInBackground上傳遞值以便它可以使用它。當我在doInBackgroud中直接鍵入字符串時,它可以工作。但是我有三種類型的「Professional」,「General」,「Special」我不想創建3個asyncTask。在我的研究中,我發現我需要創建構造器,但我不明白它。Android AsyncTask傳遞變量值

String type = "professional"; 


    new loadQuestioners().execute(type); 

    public class loadQuestioners extends AsyncTask <String, Integer, JSONArray> { 

    @Override 
    protected JSONArray doInBackground(String... arg0) { 

     //is the arg0 is the type i passed? 

     return null; 
    } 

} 

回答

0

只需修改代碼如下,

public class loadQuestioners extends AsyncTask <String, Integer, JSONArray> { 

@Override 
protected JSONArray doInBackground(String... arg0) { 

    //is the arg0 is the type i passed? 
    String yourType=arg0[0]; 


    return null; 
} 

「yourType」 包含在創建的AsyncTask

您通過型式
+0

所以如果我有一個新的loadQuestioners()。execute(type,type2,type3); String yourType = arg [0]; String yourType2 = arg [1];等等?數控THX – 2014-11-02 17:19:32

+0

然後你就可以訪問它們使用的代碼,用於(字符串類型:爲arg0){ \t \t \t \t //做什麼類型傳遞 \t \t \t} – Jickson 2014-11-02 17:21:41

+0

讓我知道如果這能解決問題嗎? – Jickson 2014-11-02 17:23:00

0

String... args意味着它可以採取如paramrters:

  • 單個字符串對象OR
  • 字符串

所以你的情況的陣列通過一個字符串數組,以你的異步任務的執行方法和doInBackground會讓他們很好。在doInBackground內部,使用arg0參數作爲字符串數組,你應該很好。

1

我能看到的要對這個方法有兩種: 1:

new loadQuestioners().execute("professional"); 

public class loadQuestioners extends AsyncTask <String, Integer, JSONArray> 
{ 
    @Override 
    protected JSONArray doInBackground(String... arg) 
    { 
     String word = arg[0]; 
     return null; 
    } 
} 

第二種:創建構造函數並傳遞參數:

new loadQuestioners("professional").execute(); 

public class loadQuestioners extends AsyncTask <String, Integer, JSONArray> 
{ 
    private String word; 

    public loadQuestioners(String word) 
    { 
     this.word = word; 
    } 

    @Override 
    protected JSONArray doInBackground(String... arg0) 
    { 
     //use word 
     return null; 
    } 
} 
+0

對不起格式不好,我從我的手機發布。 – 2014-11-02 17:24:43

+0

沒問題,但在Asynctask內部構造構造器讓我感到困惑,因爲沒有構造器它看起來會起作用 – 2014-11-02 17:28:20

+0

是的,兩種方式都是正確的,並且工作,這只是一個偏好問題。就我個人而言,我更喜歡第二種方法,因爲我發現它比第一種方法更具可讀性,您必須使用數組索引來訪問參數。 – 2014-11-02 17:32:36