2017-04-16 27 views
0

我想從一個意圖中設置一個變量'election_id'從前一個類中獲取額外的內容。我需要使用id來解析它到一個PHP URL中以檢索一些JSON。我希望能夠做的是設置一個變量等於選ID作爲指定在前面的類,在後臺任務中使用什麼:在後臺(異步)任務類(Java/Android)中訪問的類方法中設置一個變量

public class AdminFinishCandidateActivity extends AppCompatActivity { 

String json_string; 
String json_string_result; 

String election_id; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_admin_finish_candidate); 

    System.out.println("creating"); 

    Bundle electionData = getIntent().getExtras(); 
    if (electionData==null) { 
     return; 
    } 

    election_id = electionData.getString("electionId"); 

} 



public void getJson(View view){ 

    new BackgroundTask().execute(); 

} 


class BackgroundTask extends AsyncTask<Void,Void,String> { 



    String json_url="http://192.168.56.1/dan/db/getjson.php?election_id=" + election_id; 


// code to retrieve JSON 
    } 
} 
} 

目前,election_id被我的onCreate分配方法,但是我知道我無法從我的BackgroundTask類中的此方法訪問它,我在其中定義了字符串json_url。我該如何做到這樣才能在這個類中調用election_id變量?檢索意圖附加功能的方法在此類中不起作用。當我使用JSON代碼運行代碼時,不會檢索到任何內容。謝謝。

回答

1

您可以將字符串傳遞到的AsyncTask如下:

public class BackgroundTask extends AsyncTask<String,Void,String>{ 

    @Override 
    protected String doInBackground(String... params) { 
    String json_url="http://192.168.56.1/dan/db/getjson.php?election_id=" + params[0]; 

     //perform network operation and return response 
     return response; 
    } 

    @Override 
    protected void onPostExecute(String res){ 
     //Batman Rocks 
    } 
} 

如下現在執行的任務:

new BackgroundTask().execute(election_id);