Ank*_*kit 2 android listview adapter
我有一个列表视图,其适配器位于不同包中的不同类中.现在我必须从数据库中获取数据,然后使用此数据为我的列表视图设置Adapter.所以我创建了一个ArryList并在Adapter的构造函数中传递它,同时将它发送到列表视图.但问题是数据正在重复.例如,在arraylist中有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;
}
Run Code Online (Sandbox Code Playgroud)
试试这个..只是写出所有代码的条件期望膨胀代码..
@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);
} //end of if condition
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);
}
});
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |