2

I would like to pass multiple arrays for my custom ArrayAdapter. Here's my arrays and what I want to do:

String[] names = new String[]{ "One", "two", "three" };

String[] texts = new String[]{ "Bacon", "Eggs", "Cheese" };

Customadapter ap = new Customadapter(this, names, texts);
setListAdapter(ap);

and here's my custom ArrayAdapter:

public class Customadapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] names;

    public Customadapter(Activity context, String[] names) {
        super(context, R.layout.row, names);
        this.context = context;
        this.names = names;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.row, null, true);
        TextView tw1 = (TextView) rowView.findViewById(R.id.label);
        TextView tw2 = (TextView) rowView.findViewById(R.id.label2);

        String text = names[position];
        tw2.setText(text);

        return rowView;

    }

}

3 Answers 3

1

Instead of having a ArrayAdapter<Strings> you need to create a adapter of ArrayAdapter<HashMap<String,String>>

Sign up to request clarification or add additional context in comments.

Comments

0

Try using a SimpleAdapter instead.

Comments

0

extend BaseAdapter instead of ArrayAdapter for starters, then adapt the constructor so that it takes the texts string as well such that you can store it in the Adapter. That should do the trick mostly. There are some methods needing overriding afaik, but its there in the docs.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.