Android自定义列表视图复选框滚动

Android自定义列表视图复选框滚动,android,checkbox,selected,Android,Checkbox,Selected,强调文本Hi everyone I work android自定义列表视图和复选框示例。但我做了这个例子。单击列表行,选中复选框。但是我的listview会从下到上滚动,选中的复选框会更改。请帮帮我。谢谢大家。我的代码 public class YoklamaListAdapter extends BaseAdapter { private Activity activity; private LayoutInflater inflater; public List<MovieYoklam

强调文本Hi everyone I work android自定义列表视图和复选框示例。但我做了这个例子。单击列表行,选中复选框。但是我的listview会从下到上滚动,选中的复选框会更改。请帮帮我。谢谢大家。我的代码

public class YoklamaListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
public List<MovieYoklama> yoklamaItems;
boolean selected = false;
private int selectedPosition = -1;
private int selectedStart = 0;

public YoklamaListAdapter(Activity activity, List<MovieYoklama> movieItems) {
    this.activity = activity;
    this.yoklamaItems = movieItems;
}

@Override
public int getCount() {
    return yoklamaItems.size();
}

@Override
public Object getItem(int location) {
    return yoklamaItems.get(location);
}

@Override
public long getItemId(int position) {
    return position;
}

public boolean isSelected() {
    return selected;
}

public void setSelected(boolean selected) {
    this.selected = selected;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.listturyoklama_row, null);

    ImageView thumbNail = (ImageView) convertView
            .findViewById(R.id.thumbnailYoklama);
    TextView title = (TextView) convertView
            .findViewById(R.id.txtYoklamaTitle);
    TextView kisiID = (TextView) convertView
            .findViewById(R.id.txtYoklamaKID);
    TextView kisiTip = (TextView) convertView
            .findViewById(R.id.txtYoklamaKTip);
    CheckBox chk = (CheckBox) convertView.findViewById(R.id.chckYoklama);

    MovieYoklama m = yoklamaItems.get(position);
    if (selectedStart == 0) {
        chk.setChecked(true);
        m.setCheckbox(true);
    } else {
        if (position == selectedPosition) {
            if (!m.isCheckbox()) {
                chk.setChecked(true);
                m.setCheckbox(true);
            } else {
                chk.setChecked(false);
                m.setCheckbox(false);
            }
        }
    }
    thumbNail.setImageResource(m.getThumbnailUrl());

    // title
    title.setText(m.getTitle());
    // ID
    kisiID.setText(m.getID());
    // Tip
    kisiTip.setText(m.getTip());
    return convertView;
}

public void setCheckBox(int position) {
    selectedPosition = position;
    selectedStart = 1;
    notifyDataSetChanged();
}
然后按活动类别单击列表视图

private YoklamaListAdapter adapteryoklama;
----------
listViewYoklama.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            adapteryoklama.setCheckBox(position);

        }
    });
private YoklamaListAdapteryOklama;
----------
setOnItemClickListener(新的OnItemClickListener()){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
adapteryoklama.setCheckBox(位置);
}
});

单击项目时,必须更新MovieYoklama对象

public void setCheckBox(int position) {
    MovieYoklama m = yoklamaItems.get(position)
    m.setCheckbox(true);
    selectedStart = 1;
    notifyItemChanged(position);
}

单击项目时,必须更新MovieYoklama对象

public void setCheckBox(int position) {
    MovieYoklama m = yoklamaItems.get(position)
    m.setCheckbox(true);
    selectedStart = 1;
    notifyItemChanged(position);
}
您可以阅读以下内容:您可以阅读以下内容: