2014-07-18 83 views
1

這是我的適配器代碼清除的ListView

package com.example.dovizkuru; 

import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class Adapter extends BaseAdapter { 

    private LayoutInflater mInflater; 
    private List<Doviz>  dovizListesi; 


    public Adapter(Activity activity, ArrayList<Doviz> list) { 
     mInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     dovizListesi = list; 
    } 

    @Override 
    public int getCount() { 
     return dovizListesi.size(); 
     } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
View satirView; 

     satirView = mInflater.inflate(R.layout.list_item, null); 
     TextView textView = 
       (TextView) satirView.findViewById(R.id.textView1); 
     TextView textView1 = 
       (TextView) satirView.findViewById(R.id.textView2); 
     TextView textView2 = 
       (TextView) satirView.findViewById(R.id.textView3); 
     TextView textView3 = 
       (TextView) satirView.findViewById(R.id.textView4); 
     TextView textView4 = 
       (TextView) satirView.findViewById(R.id.textView5); 
     ImageView imageView = 
       (ImageView) satirView.findViewById(R.id.imageView1); 

     textView.setText("Satış fiyati"); 
     textView1.setText("Alış fiyati"); 
     textView2.setText(dovizListesi.get(position).getAlis()); 
     textView3.setText(dovizListesi.get(position).getSatis()); 
     textView4.setText(dovizListesi.get(position).getAdi()); 
     imageView.setImageResource(R.drawable.abc_ab_bottom_solid_dark_holo); 


     return satirView; 

} 
} 

問題是每當我進入適配器它使堆積在列表頂部的數據,如它給人的第一6路輸出,但是當some1點擊按鈕調用適配器再次它使輸出12,而它應該已經停留在6刷新數據。我試圖在適配器的最後添加清單()和我的列表的缺點,但最終出現錯誤。 問:我需要做什麼,我可以替換我的ListView,而不是在頂部添加新數據。

這是我添加的地方。 try {JSONObject jObj = new JSONObject(response); jsonArrayGold = jObj.getJSONArray(「value」);

  for (int i = 0; i < jsonArrayGold.length(); i++) { 

       Altin altin = new Altin(); 

       JSONObject jsonObject = jsonArrayGold.getJSONObject(i); 
       altin.setAdi(jsonObject.getString("adi")); 
       altin.setAlis(jsonObject.getString("alis")); 
       altin.setSatis(jsonObject.getString("satis")); 
       altin.setKey(jsonObject.getString("key")); 
       altin.setKey2(jsonObject.getString("key2")); 
       altin.setType(jsonObject.getString("type")); 
       altin.setUpDown(jsonObject.getString("upDown")); 
       list.add(altin.getAdi()); 
       list.add(altin.getAlis()); 
       list.add(altin.getSatis()); 
       altinList.add(altin); 

      }  
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
+0

你在哪裏設置適配器?你可能在某處使用.add()。 –

+0

在數組列表中添加數據之前調用arraylistist.clear()。 –

+0

我添加了我添加的部分(); – Wince

回答

0

在向列表中添加新項目之前,先清空列表然後添加項目。然後從適配器調用notifyDataSetChanged()方法。

altinList.clear(); 

for(){ 
    altinList.add(altin); 



//adapter call 
adapter.notifyDataSetChanged(); 
+0

你的意思是我在適配器上寫notifyer或? – Wince

+0

當您爲listView設置適配器時,請保留適配器的引用。然後將其用於數據更改。適配器已經有這種方法順便說一句。 –

+0

順便說一句,我試過for(){...}之前的.clear方法,它很好地工作,我應該仍然把notifyDataSetChanged()在適配器? – Wince