显示Android中异常行为的复选框
下面我已经写了我的代码,实际上当我滚动我的listview时,复选框占据了它原来的位置,任何代码的帮助都将不胜感激显示Android中异常行为的复选框,android,android-listview,Android,Android Listview,下面我已经写了我的代码,实际上当我滚动我的listview时,复选框占据了它原来的位置,任何代码的帮助都将不胜感激 cp.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub cp.setChecked(true); cx.setChecked(false);
cp.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
cp.setChecked(true);
cx.setChecked(false);
ck.setChecked(false);
int a=1;
String c=getListView().getItemAtPosition(position).toString();
updatetable(c, "FULL");
//Toast.makeText(getApplicationContext(), c+"full", Toast.LENGTH_LONG).show();
// Toast.makeText(getApplicationContext(), "year", Toast.LENGTH_LONG).show();
}
});
cx.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
cx.setChecked(true);
cp.setChecked(false);
ck.setChecked(false);
int a=1;
String c=getListView().getItemAtPosition(position).toString();
updatetable(c, "CRITICAL");
//Toast.makeText(getApplicationContext(), c+"ok", Toast.LENGTH_LONG).show();
}
});
ck.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ck.setOnCheckedChangeListener(null);
// TODO Auto-generated method stub
ck.setChecked(true);
cp.setChecked(false);
cx.setChecked(false);
int a=1;
String c=getListView().getItemAtPosition(position).toString();
updatetable(c, "FINISH");
//Toast.makeText(getApplicationContext(), c+"fineshed", Toast.LENGTH_LONG).show();
}
});
你的问题不清楚,但我想我明白了 我认为这不是复选框的问题。我认为你的适配器有问题
public class MyAdapter extends BaseAdapter {
private List<Something> mList;
private Context mContext;
public MyAdapter(Context context, List<Something> list) {
mContext = context;
mList = list;
}
@Override
public int getCount() {
return mList.getSize();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_layout, null);
}
CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.checkbox);
/* Here you should set your checkbox state */
}
}
我没有你的代码,所以上面的例子尽可能一般。如果您让我们查看代码,我们可以帮助您。您的问题不清楚!!!没必要在那里大喊大叫。有相当多的帖子与这个问题有关。请检查:)您的onClick方法应该具有覆盖注释。此外,一点重构也会有很大帮助。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_layout, null);
}
CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.checkbox);
checkBox.setChecked(states.get(position));
}