我想要使用其他語句,如果在OnPostExecute內部,所以當一個按鈕被點擊的API與數據下載,正確的標題(在這種情況下,本田或鈴木)從字符串源文件中獲取,他們都是放入一捆,並轉移到另一個活動。然後標題被用作我的DisplayDataActivity的標題,並將數據放入TextView中。 因此,我使用相同的活動來顯示我的數據,只是使用不同的標題和數據。 總共有20個按鈕,但是一旦我知道如何爲其中的兩個獲取id,我會將其擴展到其餘的其他按鈕。 但是我無法在OnPostExecute中傳遞我的按鈕ID(所以我可以根據點擊的按鈕ID選擇正確的else_if語句)。 有沒有辦法做到這一點? 我會非常感激任何幫助! !按鈕ID的內部OnPostExecute
更新的代碼:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class Wrap
{
public String dataPassedInOnClick;
public String resultData;
}
public class JSONTask extends AsyncTask<String, String, Wrap> {
private Context mContext;
private View rootView;
ProgressDialog pDialog;
JSONTask(Context mContext) {
this.mContext = mContext;
}
public JSONTask(Context context, View rootView){
this.mContext=context;
this.rootView=rootView;
}
@Override
protected Wrap doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
Wrap wrapper=new Wrap();
wrapper.dataPassedInOnClick=params[0];
wrapper.resultData=buffer.toString();
return wrapper;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute(){
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Loading data...");
pDialog.show();
}
protected void onPostExecute(Wrap wrapResult) {
super.onPostExecute(wrapResult);
this.pDialog.dismiss();
if (wrapResult.dataPassedInOnClick.contains("api_suzuki")) {
String activity_title =
getResources().getString(R.string.suzuki);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_honda")) {
String activity_title =
getResources().getString(R.string.honda);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_kawasaki")) {
String activity_title =
getResources().getString(R.string.kawasaki);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_triumph")) {
String activity_title =
getResources().getString(R.string.triumph);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_bmw")) {
String activity_title =
getResources().getString(R.string.bmw);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_hyousung")) {
String activity_title =
getResources().getString(R.string.hyousung);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_ducati")) {
String activity_title =
getResources().getString(R.string.ducati);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_harley")) {
String activity_title =
getResources().getString(R.string.harley);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_aprilia")) {
String activity_title =
getResources().getString(R.string.aprilia);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_ktm")) {
String activity_title =
getResources().getString(R.string.ktm);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_mv")) {
String activity_title =
getResources().getString(R.string.mv);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_bajaj")) {
String activity_title =
getResources().getString(R.string.bajaj);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("royal")) {
String activity_title =
getResources().getString(R.string.royal);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_hero")) {
String activity_title =
getResources().getString(R.string.hero);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
else if (wrapResult.dataPassedInOnClick.contains("api_indian")) {
String activity_title =
getResources().getString(R.string.indian);
Intent intent = new Intent(MainActivity.this,
DisplayDataActivity.class);
Bundle extras = new Bundle();
extras.putString("title", activity_title);
extras.putString("JSON_Object", wrapResult.resultData);
intent.putExtras(extras);
startActivity(intent);
}
}
}
public void onSuzuki(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_suzuki");
}
public void onHonda(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_honda");
}
public void onKawasaki(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_kawasaki");
}
public void onTriumph(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_triumph");
}
public void onBmw(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_bmw");
}
public void onHyuosung(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_hyuosung");
}
public void onDucati(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_ducati");
}
public void onHarley(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_harley");
}
public void onAprilia(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_aprilia");
}
public void onKtm(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_ktm");
}
public void onMv(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_mv");
}
public void onBajaj(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_bajaj");
}
public void onRoyal(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_royal");
}
public void onHero(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_hero");
}
public void onIndian(View view) {
JSONTask objJSONTask=new JSONTask(MainActivity.this);
objJSONTask.execute("api_indian");
}
嗨!我的按鈕執行API的,在OnPostExecute我想有一個else_if語句,將根據按鈕的ID按鈕(所以本田或鈴木)從字符串源文件中選擇正確的標題,然後它被放入一個捆綁並轉移到另一個活動。所以我的按鈕工作正常,將按鈕ID轉換爲OnPostExecuted時的問題。 :) – kamilsparrow
你在OnPostExecute中傳遞哪個視圖? –
這就是我問的問題。我如何訪問OnPostExecute中的按鈕ID。 – kamilsparrow