GridView
電子メールの受信トレイ ページと同じように、テキストとチェック ボックスを表示したいアプリケーションがあります。そのためにアダプターを使用しますが、15 個を超える要素を表示すると、一番上の行のテキストとチェック ボックスが消えてしまい、もう一度上にスクロールすると表示されなくなります。これが私のコードです
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;
}
}
アダプター クラスの呼び出しは次のとおりです。
table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 0, selected));
//OR
table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 1, selected));
レイアウト XML ファイルは
<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>