Ich habe die beiden Spinner in xml erstellt, nämlich myspinner und myspinner1. Der myspinner-Wert wird aus dem json-Wert bezogen. Basierend auf dem ausgewählten myspinner-Element erhalten wir die Hotel-ID. Die abgerufene Hotel-ID wird verwendet, um die andere AsyncT1 aufzurufen. In der AsyncT1 wird der myspinner1-Wert aufgelistet. Mein Problem ist, wenn ich wählen sie den Myspinner der myspinner1 Wert nicht aktualisiert wird, bleibt same.I die adapter.notifydatasetchanged versucht haben(), aber bis jetzt nichtAktualisiere den zweiten Spinner basierend auf dem ersten Spinner Item
class AsyncT extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
String userID = prefs.getString("userid", null);
System.out.println("userID---"+userID);
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://airbnb.abservetech.com/demo/public/mobile/hotelroom/hotel");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("user_id", userID));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.e("mainToPost", "mainToPost" + nameValuePairs.toString());
/* execute */
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
InputStream inputStream = response.getEntity().getContent();
InputStreamToStringExample str = new InputStreamToStringExample();
responseServer = str.getStringFromInputStream(inputStream);
Log.d("response", "response -----" + responseServer);
//Get the instance of JSONArray that contains JSONObjects
// postData(responseServer);
JSONObject jsonRootObject = new JSONObject(responseServer);
JSONArray jsonArray = jsonRootObject.optJSONArray("Hotel_details");
//Iterate the jsonArray and print the info of JSONObjects
for (int i1 = 0; i1 < jsonArray.length(); i1++) {
try {
JSONObject jsonObject = jsonArray.getJSONObject(i1);
Movie movie = new Movie();
movie.setHotelid1(jsonObject.optString("hotel_id").toString());
movie.setHotelname1(jsonObject.optString("hotel_name").toString());
hotelNames.add(jsonObject.optString("hotel_name").toString());
movieList.add(movie);
System.out.println("movie list" + movieList);
runOnUiThread(new Runnable() {
@Override
public void run() {
Adapter = (new ArrayAdapter<String>(Edit_room.this, android.R.layout.simple_spinner_dropdown_item, hotelNames));
mySpinner.setAdapter(Adapter);
Adapter.notifyDataSetChanged();
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int position, long arg3) {
// TODO Auto-generated method stub
// Locate the textviews in activity_main.xml
// Set the text followed by the position
hotelid= (movieList.get(position).getHotelid1());
System.out.println("name--"+hotelid);
new AsyncT1().execute(hotelid);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
});
}
catch (JSONException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
}
}
class AsyncT1 extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// http://airbnb.abservetech.com/demo/public/mobile/hotelroom/roomid?hotel_id=79
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://airbnb.abservetech.com/demo/public/mobile/hotelroom/show");
SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
String userID = prefs.getString("userid", null);
System.out.println("userID---"+userID);
/*hotel_id&room_type&room_prize&is_active&available_status&adults_count&room_count&room_images&
room_desc&room_name&room_footage&General&Services&Food_Beverages&Outdoors&Activities&
Dining&Media_Entertainment&Kitchen&Others*/
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("hotel_id", hotelid));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.e("mainToPost", "mainToPost" + nameValuePairs.toString());
/* execute */
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
InputStream inputStream = response.getEntity().getContent();
InputStreamToStringExample str = new InputStreamToStringExample();
responseServer = str.getStringFromInputStream(inputStream);
Log.d("response", "viewroomresponse -----" + responseServer);
JSONObject jsonRootObject = new JSONObject(responseServer);
JSONArray jsonArray = jsonRootObject.optJSONArray("view_room_details");
//Iterate the jsonArray and print the info of JSONObjects
for (int i1 = 0; i1 < jsonArray.length(); i1++) {
try {
JSONObject jsonObject = jsonArray.getJSONObject(i1);
Movie movie = new Movie();
// movie.setViewRoomtype(jsonObject.optString("room_type").toString());
movie.setViewRoomprice(jsonObject.optString("room_prize").toString());
movie.setViewIsActive(jsonObject.optString("is_active").toString());
movie.setViewAvailablestatus(jsonObject.optString("available_status").toString());
movie.setViewAdultcount(jsonObject.optString("adults_count").toString());
movie.setViewRoomcount(jsonObject.optString("room_count").toString());
movie.setViewRoomdesc(jsonObject.optString("room_desc").toString());
movie.setViewRoomname(jsonObject.optString("room_name").toString());
movie.setViewRoomfootage(jsonObject.optString("room_footage").toString());
RoomNames.add(jsonObject.optString("room_type").toString());
movieList.add(movie);
runOnUiThread(new Runnable() {
@Override
public void run() {
// ArrayAdapter<String> Adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,RoomNames);
// Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Adapter.notifyDataSetChanged();
// mySpinner1.setAdapter(Adapter);
Adapter1 =(new ArrayAdapter<String>(Edit_room.this, android.R.layout.simple_spinner_dropdown_item, RoomNames));
if(Adapter1!=null){
Adapter1.notifyDataSetChanged();
mySpinner1.setAdapter(Adapter1);
}
else{ mySpinner1.setAdapter(Adapter1);}
mySpinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int position, long arg3) {
// TODO Auto-generated method stub
// Locate the textviews in activity_main.xml
// Set the text followed by the position
hotelid= (movieList.get(position).getHotelid1());
room_price.setText(movieList.get(position).getViewRoomprice());
description.setText(movieList.get(position).getViewRoomdesc());
adult_count.setText(movieList.get(position).getViewAdultcount());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
});
}
catch (JSONException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
}
}
`
Schreiben Sie mySpinner.setOnItemSelectedListener stattdessen in MainActivity. –
danke für ur answer, aber es funktioniert nicht – sri