這是我在這個網站上的第一個問題,我也是Android的新手。我正在使用在線API創建應用程序。我正在用XML處理這個API並將響應解析成ListViews。我已經達到了希望從一個活動中的ListView中選擇一個項目並將該信息與包含所選項目的更多信息的另一個ListView一起發送到下一個活動的點。舉個例子,一個活動有一個樂隊列表。點擊樂隊名稱將顯示樂隊名稱和下一次活動的巡演日期列表。根據我的API,樂隊的ID號碼是需要訪問樂隊巡迴信息,我試圖通過身份證號碼作爲搜索參數,但不能讓這個工作。我確實設法在androidhive.info上找到一個體面的教程,但似乎無法應用這些技術。 doInBackground()方法是我的應用程序掛起的位置。Android - 如何使用嵌套ListViews
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String displayName = ((TextView) view.findViewById(R.id.tvDisplayName)).getText().toString();
String onTourUntil = ((TextView) view.findViewById(R.id.tvOnTourUntil)).getText().toString();
String identification = ((TextView) view.findViewById(R.id.tvId)).getText().toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleArtistActivity.class);
in.putExtra(KEY_DISPLAY_NAME, displayName);
in.putExtra(KEY_ID, identification);
in.putExtra(KEY_ON_TOUR_UNTIL, onTourUntil);
new AsyncDownload().execute(identification);
startActivity(in);
}
});
}
private class AsyncDownload extends AsyncTask<String, String, String> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ArtistsSearchActivity.this);
pDialog.setMessage("Please Wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected String doInBackground(String... params) {
Log.v(TAG, "query is" + params[0]);
String result = new ArtistCalendarHelper().getXml(params[0]);
return result;
}
我AsyncDownload類被稱爲在我onClickListener。該類將調用一個包含URL和API密鑰的助手。
public class ArtistCalendarHelper {
private static final String TAG = "ArtistCalendarHelper";
private static final String SONGKICK_URL = "http://api.songkick.com/api/3.0/artists/";
private static final String API_KEY = "yIekMi1hQzcFheKc";
public String getXml(String identification) {
HttpClient httpclient = new DefaultHttpClient();
String getParameters = "";
try {
getParameters = URLEncoder.encode(identification, "UTF-8")
+ "/calendar.xml?apikey=" + URLEncoder.encode(API_KEY, "UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String url = SONGKICK_URL + getParameters;
// Prepare a request object
HttpGet httpget = new HttpGet(url);
// Execute the request
HttpResponse response;
這些方法適用於在初始搜索中獲取譜帶名稱。這怎麼可能被改變來用從ListView中檢索的參數來搜索旅遊信息? 這與從EditText字段獲取搜索查詢有什麼不同?我不認爲會有很大的區別。我試圖包含受影響的代碼。我不確定我應該提供多少代碼。
何時會分配「標識」?這就是爲什麼我在第一次活動中保留這個聲明。 – user2305700 2013-04-22 04:54:02