搜索时ListView中的数据重复

时间:2012-07-03 09:47:16

标签: android android-adapter

我正在尝试进行包含图像和textview的搜索。 因此,当我搜索它时返回肯定结果,但当我返回并使用其他值搜索时,它会同时返回旧的返回和新结果。 我希望我的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省份,当点击buttonB_GP时,它必须返回所有GP省份。它所做的只是在我第二次搜索时返回旧数据,这里是我的listView classess:

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));       

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

1 个答案:

答案 0 :(得分: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);
            }