[:en]
Step 1: activity_main.xml
Step 2: MainActivity.java
package com.example.cambridge.listviewdemo; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); ListView listView = (ListView)findViewById(R.id.listView); ArrayListsubjects = new ArrayList (); SchoolSubject math = new SchoolSubject("Scanner", false, R.drawable.p1); subjects.add(math); SchoolSubject science = new SchoolSubject("Chart", true, R.drawable.p2); subjects.add(science); SchoolSubject history = new SchoolSubject("Student", true, R.drawable.p3); subjects.add(history); SchoolSubject reading = new SchoolSubject("Calendar", false, R.drawable.p4); subjects.add(reading); //substantiate SubjectAdapter adapter = new SubjectAdapter(getApplicationContext(), R.layout.row_view, subjects); listView.setAdapter(adapter); } public class SchoolSubject { public String name; public boolean isHomeworkDone; public int imageId; public SchoolSubject(String name, boolean isHomeworkDone, int imageId){ this.name = name; this.isHomeworkDone = isHomeworkDone; this.imageId = imageId; } } public class SubjectAdapter extends ArrayAdapter { Context context; int resource; ArrayList subjects = null; public SubjectAdapter(Context context, int resource, ArrayList subjects) { super(context, resource, subjects); this.context = context; this.resource = resource; this.subjects = subjects; } @Override public View getView(int position, View convertView, ViewGroup parent) { SchoolSubject subject = subjects.get(position); if (convertView == null){ convertView = LayoutInflater.from(context).inflate(R.layout.row_view,parent,false); } TextView subjectNameTextView = (TextView)convertView.findViewById(R.id.subjectNameTextField); CheckBox homeworkDoneCheckBox = (CheckBox)convertView.findViewById(R.id.homeworkDoneCheckBox); ImageView imageView = (ImageView)convertView.findViewById(R.id.imageView); subjectNameTextView.setText(subject.name); homeworkDoneCheckBox.setChecked(subject.isHomeworkDone); imageView.setImageResource(subject.imageId); return convertView; } } }
Step 3: row_view.xml
[:]