0

hi i want to get values from database and show in listview

i get 6 value from database and send it to adapter but all 6 row is last item to send to adapter

when i add

ViewHolder holder;

android studio after alt + enter change to

RecyclerView.ViewHolder holder;

i read this post's but can not fix problem

Rows being repeated in ListView

Duplicated entries in ListView

Android Listview row repeating item

List item repeating in android customized listview

I know this question is duplicate but can not fix it Thanks in advance

my adapter :

public class lim_sms_adapter extends BaseAdapter {

private Activity activity;
private LayoutInflater inflater;
private List<lim_sms> lim_smsItems;



public lim_sms_adapter (Activity activity, List<lim_sms> lim_smsItems) {
    this.activity = activity;
    this.lim_smsItems = lim_smsItems;
}
@Override
public int getCount() {
    return lim_smsItems.size();
}
@Override
public Object getItem(int location) {
    return lim_smsItems.get(location);
}
@Override
public long getItemId(int position) {
    return position;
}

@Override
public int getViewTypeCount() {

    return getCount();
}

@Override
public int getItemViewType(int position) {

    return position;
}

@SuppressLint("SetTextI18n")
@Override
public View getView(int position, View convertView, ViewGroup parent) {


    if (inflater == null)
        inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.row_lim_sms, null);

    TextView number = (TextView) convertView.findViewById(R.id.row_lim_sms_txt_number);

    lim_sms m =  lim_smsItems.get(position);

     number.setText(m.getSms_number());

    return convertView;
}

}

my class seter and geter :

public class lim_sms {
String sms_number;

public lim_sms(String sms_number) {
    this.sms_number = sms_number;
}

public lim_sms() {
}

public String getSms_number() {
    return sms_number;
}

public void setSms_number(String sms_number) {
    this.sms_number = sms_number;
}
}

my activity :

public class list_limit_sms extends AppCompatActivity {

private List<lim_sms> limit_sms = new ArrayList<lim_sms>();
private lim_sms_adapter adapter;
private sms_database sms_db = new sms_database(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_limit_sms);

    ListView listView = (ListView) findViewById(R.id.list_lim_sms);

    adapter = new lim_sms_adapter(this, limit_sms);
    listView.setAdapter(adapter);

    lim_sms cy = new lim_sms();
    List<sms_class> sms_list = sms_db.getAllContacts();

    for (sms_class ss : sms_list) {
        //String log = "Id: "+ss.getId()+" ,num: " + ss.getNum() + " ,type: " + ss.getType();
        //Toast.makeText(this, ""+log, Toast.LENGTH_LONG).show();
        cy.setSms_number(ss.getNum());
        Toast.makeText(this, ""+ss.getNum(), Toast.LENGTH_SHORT).show();
        limit_sms.add(cy);
        adapter.notifyDataSetChanged();
    }


}
}
ebrahim
  • 9
  • 3
  • Numbers you get from DB are different when you display them with Toast? – Thracian Oct 19 '17 at 16:10
  • yes when Toast in activity and toast in adapter is different and good Toast but in listview is only last number – ebrahim Oct 19 '17 at 16:12
  • Why do not you use a daily android implementation of using SQLite Open Helper, Cursor loader, Content provider, List View and Cursor Adapter. – Xenolion Oct 19 '17 at 17:58

0 Answers0