How To Display Checkbox On Every Entry In A ListView
From this Activity i get text from textField and display it in a ListView. Now i want to to add check box on every entry in a listView Cell and also like to know how to display mor
Solution 1:
You have to use a BaseAdapter and some Getter/Setter methods to add multiple texts/images/other UI elements in each item of your list view.
You have to implement multiple things to get this result. Here they are --
- Create a Custom Layout for each item of your ListView.
listview_item_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/layout_textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_marginRight="5dip"
android:textStyle="bold"/>
<TextView
android:id="@+id/layout_textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_marginLeft="5dip"
android:textStyle="bold"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkbox"
android:text="Test"/>
</LinearLayout>
- Create a custom class and add some Getter/Setter methods.
ListRowItem.java
public class ListRowItem implements Serializable{
String carrier,number;
public String getCarrier(){
return carrier;
}
public String getNumber(){
return number;
}
public void setCarrier(String ba_carrier){
carrier = ba_carrier;
}
public void setNumber(String ba_number){
number = ba_number;
}
}
Create a custom class and extend the BaseAdapter class.
public class MyBaseAdapter extends BaseAdapter { public Context ba_context; public ArrayList<ListRowItem> listitem = new ArrayList<>(); public LayoutInflater inflater; ListRowItem currentlistitem; public MyBaseAdapter(Context ma_context, ArrayList<ListRowItem> ma_listitem) { super(); this.ba_context = ma_context; this.listitem = ma_listitem; inflater = (LayoutInflater) ba_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return this.listitem.size(); } @Override public Object getItem(int position) { return this.listitem.get(position); } @Override public long getItemId(int position) { return (long) position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View vi = convertView; if (convertView == null) vi = inflater.inflate(R.layout.listview_item_layout, parent, false); TextView carrier = (TextView) vi.findViewById(R.id.layout_textview1); TextView number = (TextView) vi.findViewById(R.id.layout_textview2); currentlistitem = listitem.get(position); String str_carrier = currentlistitem.getCarrier(); String str_number = currentlistitem.getNumber(); carrier.setText(str_carrier); number.setText(str_number); return vi; } }
Finally, populate your ArrayList and set the Adapter in your MainActivity.
ArrayList<ListRowItem> listitem = new ArrayList<>(); Context context = TestActivity.this; MyBaseAdapter baseAdapter; ListRowItem lr = new ListRowItem(); lr.setNumber(number); lr.setCarrier(carrier); listitem.add(lr); baseAdapter = new MyBaseAdapter(context,listitem); setContentView(R.layout.activity_test); listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(baseAdapter);
Hope this helps!!
Post a Comment for "How To Display Checkbox On Every Entry In A ListView"