У меня есть представление списка, адаптер которого находится в другом классе в другом пакете. Теперь я должен получить данные из базы данных, а затем установить Adapter для своего списка, используя эти данные. Итак, я создал ArryList и передал его в конструктор Adapter, одновременно просматривая его для представления списка. Но проблема в том, что данные повторяются. Например, в массиве есть 12 различных строк, но я получаю - первые пять элементов по порядку, и после этого те же пять повторяются. Количество данных всегда верно, но позиция всегда будет 0,1,2,3,4. Я не могу понять, в чем проблема. вот код -
public class CheckboxAdapter extends BaseAdapter{
LayoutInflater inflater ;
ArrayList<String> mData = new ArrayList<String>();
//constructor for lesion adapter
public CheckboxAdapter (Context context, ArrayList<String> data){
inflater = LayoutInflater.from(context);
mData = data;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null){
Log.v("pos", ""+position);
convertView = inflater.inflate(R.layout.e_lesion_liststyle, null);
final CheckBox cb = (CheckBox) convertView.findViewById(R.id.disease_lesion_checkbox);
cb.setText(mData.get(position));
cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
cb.setButtonDrawable(R.drawable.check_box_1);
}
});
}//end of if condition
return convertView;
}