0

我正在尝试进行包括图像和文本视图的搜索。因此,当我搜索它时,它会返回肯定的结果,但是当我返回并使用其他值进行搜索时,它会同时返回旧的返回值和新的结果。我希望我的 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);
    }
});

当我单击第一个按钮 KZN 时,它必须显示所有 KZN 省份,当单击按钮 B_GP 时,它必须返回所有 GP 省份。所以当我第二次搜索时它只是返回旧数据,这里是我的 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));       

所以请帮我根据选择的按钮显示正确的值。

4

1 回答 1

3

试试这个PNames.clear(), PImages.clear();

 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);
            }   
于 2012-07-03T09:50:28.707 回答