画像とテキストビューを含む検索をしようとしています。したがって、検索すると肯定的な結果が返されますが、戻って他の値で検索すると、古い結果と新しい結果が同時に返されます。listView に古いデータを追加しないようにします。古いデータを新しい値で上書きする必要があります。ここに私のコード:
public void onClick(View Kv) {
Intent moreDetailsIntent = new Intent(MainMenu.this,ListMobileActivity.class);
Bundle dataBundle = new Bundle();
dataBundle.putString("Prov","KwaZulu-Natal");
moreDetailsIntent.putExtras(dataBundle);
startActivity(moreDetailsIntent);
});
B_GP.setOnClickListener(new View .OnClickListener() {
@Override
public void onClick(View Gv) {
Intent moreDetailsIntent = new Intent(MainMenu.this,ListMobileActivity.class);
Bundle dataBundle = new Bundle();
dataBundle.putString("Prov","Gauteng");
moreDetailsIntent.putExtras(dataBundle);
startActivity(moreDetailsIntent);
}
});
最初の buttonKZN をクリックすると、すべての KZN 州が表示され、buttonB_GP をクリックするとすべての GP 州が返される必要があります。そのため、2回目の検索時に古いデータを返すだけです。ここでは、私のlistViewクラス:
Bundle b = getIntent().getExtras(); // Getting the Bundle object that pass from another activity
String SelectedProv = b.getString("Prov");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("ProvinceName",SelectedProv));
Log.d("ProvinceName",SelectedProv);
JSONObject json = jsonParser.makeHttpRequest("http://10.0.2.2/php/searchKZN.php", "POST", params);
try{
JSONArray earthquakes = json.getJSONArray("PROV");
for(int i=0;i<earthquakes.length();i++){
JSONObject e = earthquakes.getJSONObject(i);
String PCity = e.getString("P_City");
PNames.add(PCity);
String Pimage = e.getString("Pname");
PImages.add(Pimage);
}
} catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
setListAdapter(new MobileArrayAdapter(this, PNames,PImages));
選択したボタンに応じて正しい値を表示するのを手伝ってください。