I have a GridView in my application in which I want to show text and checkboxes, just like in my inbox. I use an adapter for this, but when I show more than 15 elements, the text and checkboxes of the top lines disappear, so when I scroll up again they are not visible. Here is my code
public class EmployeeAdaptor extends BaseAdapter { Context context; String [] table; int pos; int formatOfTable; public EmployeeAdaptor(Context c,String []tab,int numberOfItems,int format, boolean[] sel) { context = c; table = tab; items = numberOfItems; formatOfTable = format; //ifformat is 0 then show text view in first column //if it is 1 then show radio button in first column //if it is 2 then show check box in first column. pos = 0; } public int getCount() { // return items; } public Object getItem(int position) { // return position; } public long getItemId(int position) { // return position; } public View getView(final int position, View convertView, ViewGroup parent) { View v; TextView text = new TextView(context); RadioButton radio = new RadioButton(context); CheckBox check = new CheckBox(context); if(convertView == null){ v = new View(context); } else{ v = convertView; } if(formatOfTable==2 && position%5==0 && position/5!=0){ check.setId(position/5); v = check; } else if(formatOfTable==0 && position%5==0 && position/5!=0){ text.setText(""); v = text; //To set blank text at first position when no need of check } else{ if(position%5!=0){ try{ v = text; text.setText(table[pos]); text.setTextColor(Color.BLACK); text.setTextSize(20); pos++; } catch(Exception e){ } } } if(position/5==0){ text.setTypeface(Typeface.DEFAULT_BOLD); } return v; } }
Adapter class call:
table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 0, selected)); //OR table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 1, selected));
Layout XML File
<GridView android:id="@+id/gridView1" android:layout_width="wrap_content" android:layout_height="360dp" android:layout_marginTop="40dp" android:numColumns="5" android:verticalSpacing="35dp"> </GridView>
source share