2016-03-25 4 views
0

Прежде всего это не мой основной язык, и я знаю свой английский сукс вообще. Я не могу обновить свой список. Что я делаю неправильно? Когда я отлаживаю код, я могу видеть новые элементы в списке dty, но listview не появляется.Listview не освежает после добавления нового товара

EDIT: Обновленный код, но до сих пор не повезло MyAdapter:

public class BuzagiListAdapter extends BaseAdapter { 
private LayoutInflater mInflater; 
private List<BuzagiKayitDBean> mBuzagiList; 
Context context; 


public BuzagiListAdapter(List<BuzagiKayitDBean> sorgu, Activity activity) { 

    mInflater = (LayoutInflater) activity.getSystemService(
      Context.LAYOUT_INFLATER_SERVICE); 
    mBuzagiList = sorgu; 


} 

public void add(List<BuzagiKayitDBean> buz) { 
    for(BuzagiKayitDBean item :buz) 
    { 
     mBuzagiList.add(item); 
    } 
    notifyDataSetChanged(); 

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

@Override 
public BuzagiKayitDBean getItem(int position) { 
    return mBuzagiList.get(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.buzagilist_row, null); 
    TextView textView = 
      (TextView)  satirView.findViewById(R.id.txtblDogumSonucuandKupeNo); 
    TextView textView2 = 
      (TextView) satirView.findViewById(R.id.txtblCinsiyetandPadok); 


    BuzagiKayitDBean buz = mBuzagiList.get(position); 

    textView.setText(buz.getDogumSonuc() + "-" + buz.getKupeNo()); 
    textView2.setText(buz.getCinsiyet() + " -" + buz.getGidecegiPadok()); 
    return satirView; 


} 
    public void updateNewList(ArrayList<BuzagiKayitDBean> array){ 
    mBuzagiList = array; 
    notifyDataSetChanged(); 

    } 
} 

И мой класс:

  @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 

    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 2) { 

     String kpn = data.getStringExtra("kupeno"); 
     txtddtyKupeNo.setText(kpn); 


    } 
    if (resultCode == 3) { 

     ArrayList<BuzagiKayitDBean> arraylist = data.getParcelableArrayListExtra("mylist"); 
     BuzagiKayitDBean buzd = new BuzagiKayitDBean(); 
     adapter = new BuzagiListAdapter(dty, BuzagiKayitActivity.this); 
     for (BuzagiKayitDBean item : arraylist) { 

      buzd.setGidecegiPadok(item.getGidecegiPadok()); 
      buzd.setKupeNo(item.getKupeNo()); 
      buzd.setCinsiyet(item.getCinsiyet()); 
      buzd.setDogumSonuc(item.getDogumSonuc()); 


     } 
     dty.add(buzd); 
      if(adapter == null){ 
      adapter = new BuzagiListAdapter(dty, BuzagiKayitActivity.this); 
      buzlist.setAdapter(adapter); 
     }else{ 
      adapter.updateNewList((ArrayList<BuzagiKayitDBean>)dty); 
     }  

    } 
} 
+0

, потому что, когда вы получаете новые элементы, которые вы не посылаете эти элементы к адаптеру –

+0

вместо adapter.notifyDataSetChanged(); У вас есть проверенный адаптер.notifyiteminserted (list.size()); –

+0

Возможный дубликат [Динамически добавлять элементы в виде списка] (http://stackoverflow.com/questions/6938464/dynamically-add-items-in-list-view) –

ответ

0

Вы добавляете значение в dty после создания адаптера. Это должно быть что-то вроде этого:

for (BuzagiKayitDBean item : arraylist) { 
    buzd.setGidecegiPadok(item.getGidecegiPadok()); 
    buzd.setKupeNo(item.getKupeNo()); 
    buzd.setCinsiyet(item.getCinsiyet()); 
    buzd.setDogumSonuc(item.getDogumSonuc()); 
} 
dty.add(buzd); 

if (adapter == null) { 
    adapter = new BuzagiListAdapter(dty, BuzagiKayitActivity.this); 
    buzlist.setAdapter(adapter); 
} else { 
    adapter.updateNewList(dty); 
} 

Ваш адаптер

public void updateNewList(ArrayList<data> array) { 
    yourAdapterArrayList = array; 
    //notify data set change here 
} 
+0

до сих пор никаких изменений :( –

+0

см. Мой ответ на вопрос. – KDeogharkar

Смежные вопросы