Skip to content Skip to sidebar Skip to footer

How To Populate Multiple Data In A Listview With More Than One Textview?

I am new to android. I am working at a project and i have a question. How can i take data from a ArrayList and populate them to a listview? There is an xml file th

Solution 1:

It's very simple actually.

I created a model

publicclassModel {

    String top, bottom;

    publicModel(String top, String bottom) {
        this.top = top;
        this.bottom = bottom;
    }

    publicStringgetTop() {
        return top;
    }

    publicvoidsetTop(String top) {
        this.top = top;
    }

    publicStringgetBottom() {
        return bottom;
    }

    publicvoidsetBottom(String bottom) {
        this.bottom = bottom;
    }
}

Then, I need to create a listview adapter for it.

publicclassListAdapterextendsArrayAdapter<Model> {


    private Context activityContext;
    private List<Model> list;
    publicstaticfinalStringTAG="ListView";

    publicListAdapter(Context context, List<Model> list){
        super(context, R.layout.single_listview, list);
        this.activityContext = context;
        this.list = list;
    }


    @Overridepublic View getView(finalint position, View view, ViewGroup viewGroup){

        final ViewHolder viewHolder;

        if (view == null) {
            view = LayoutInflater.from(activityContext).inflate(R.layout.single_listview, null);
            viewHolder = newViewHolder();

            viewHolder.top = (TextView) view.findViewById(R.id.top);
            viewHolder.bottom = (TextView) view.findViewById(R.id.bottom);

            viewHolder.top.setText(list.get(position).getTop());
            viewHolder.bottom.setText(list.get(position).getBottom());

            view.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) view.getTag();
        }

        return view;
    }

    privatestaticclassViewHolder {

        TextView top;
        TextView bottom;
    }


}

In my main activity, i do the following code

publicclassMainActivityextendsAppCompatActivity {

    ListView listview;

    @Override
    protectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listview = (ListView) findViewById(R.id.listview);

        List<Model> list = new ArrayList<>();
        list.add(new Model("top-one", "bot-one"));
        list.add(new Model("top-two", "bot-two"));
        list.add(new Model("top-three", "bot-three"));
        list.add(new Model("top-four", "bot-four"));
        list.add(new Model("top-five", "bot-five"));
        list.add(new Model("top-six", "bot-six"));
        list.add(new Model("top-seven", "bot-seven"));
        list.add(new Model("top-eight", "bot-eight"));

        ListAdapter adapter = new ListAdapter(listview.getContext(), list);
        listview.setAdapter(adapter);
    }
}

inside of the main activity layout xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.fuhnatik.customlistview.MainActivity"><ListViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content" /></android.support.constraint.ConstraintLayout>

finally, inside of the listview adapter layout xml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="?android:attr/listPreferredItemHeight"android:padding="6dip"android:orientation="vertical"><TextViewandroid:id="@+id/top"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:text="TOP SECTION HERE"android:textSize="16sp" /><TextViewandroid:id="@+id/bottom"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="BOTTOM SECTION HERE"android:textSize="12sp" /></LinearLayout>

result:

enter image description here

Post a Comment for "How To Populate Multiple Data In A Listview With More Than One Textview?"