如何在列表加载后从此列表视图中获取复选框(已选中/未选中)的状态?
我知道如何通过覆盖适配器的getview方法来检查列表的加载时间,但事实并非如此。
我需要的是在列表加载后获取状态,用户检查/取消选中列表中的项目并点击菜单中的备份或删除按钮。
谢谢。
答案 0 :(得分:0)
你的问题太模糊了.. 我只能回答你提供的信息量就是把它放在你的适配器中:
chkBox = (CheckBox) findViewById(R.id.chkBox);
chkIos.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//is chkBox checked?
if (((CheckBox) v).isChecked()) {
Toast.makeText(MyAndroidAppActivity.this,
"result:", Toast.LENGTH_LONG).show();
}
}
});
答案 1 :(得分:0)
你可以尝试那样
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.country_info, null);
holder = new ViewHolder();
holder.code = (TextView) convertView.findViewById(R.id.code);
holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
holder.name.setOnClickListener( new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v ;
Country country = (Country) cb.getTag();
Toast.makeText(getApplicationContext(), "Clicked on Checkbox: " + cb.getText() +
" is " + cb.isChecked(),Toast.LENGTH_LONG).show();
country.setSelected(cb.isChecked());
}
});
}
else {
holder = (ViewHolder) convertView.getTag();
}
Country country = countryList.get(position);
holder.code.setText(" (" + country.getCode() + ")");
holder.name.setText(country.getName());
holder.name.setChecked(country.isSelected());
holder.name.setTag(country);
return convertView;
}