简体   繁体   中英

Custom listview, view problems

Im absolutely new in android studio, and Im trying to create custom listview, the problem is that it creating wrong list, as

Name
Name
------
Surname
Surname
-----

... and repeating

what I want to do is:

Name
Surname
-------

My code is:

    protected void onResume() {
    DBHelper db = new DBHelper(this);
    ArrayList<String> names = new ArrayList<String>();

    for (int i = 0; i < db.getAllContacts().size(); i++) {
        names.add(db.getAllContacts().get(i).getName());
                names.add(db.getAllContacts().get(i).getEmail());

    }
        ArrayAdapter adapter = new custom_row(this, names);
        listView_allContacts.setAdapter(adapter);

        super.onResume();
    }

What is wrong here? Thanks in advance!

My custom_row code:

public class custom_row extends ArrayAdapter {

public custom_row(Context context, ArrayList<String> names) {
    super(context, R.layout.custom_cell, names);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater peoInf = LayoutInflater.from(getContext());
    View customView = peoInf.inflate(R.layout.custom_cell, parent , false);
    String singlePeople = getItem(position);
    TextView name_text = (TextView) customView.findViewById(R.id.name_text);
    TextView email_text = (TextView) customView.findViewById(R.id.email_text);

    name_text.setText(singlePeople);
    email_text.setText(singlePeople);
    return customView;
}

}

You need two different ArrayList one for the Names and one for the email.

try this

ArrayList<String> list;

public custom_row(Context context, ArrayList<String> names, ArrayList<String> email) {
    super(context, R.layout.custom_cell, names);
    list = email;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater peoInf = LayoutInflater.from(getContext());
    View customView = peoInf.inflate(R.layout.custom_cell, parent , false);
    String singlePeople = getItem(position);
    String email = list.get(position);
    TextView name_text = (TextView) customView.findViewById(R.id.name_text);
    TextView email_text = (TextView) customView.findViewById(R.id.email_text);

     name_text.setText(singlePeople);
    email_text.setText(email);
    return customView;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM