这是我的情景。
我正在listview
扩展ArrayAdapter
课程。在那个课程中,我正在动态制作文本和复选框。在该视图中,我想捕获用户点击的复选框。
以下是我的ArrayAdapter
班级getView
方法......
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null)
v = inflater.inflate(R.layout.list_view_category_type_save, null);
categoryName = (TextView) v.findViewById(R.id.category_name_save);
checkBox = (CheckBox) v.findViewById(R.id.my_check_box);
categoryName.setText(categoryDeatils.get(position).get("Categoryname"));
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
/// below line of code gives error
String a = categoryDeatils.get(position).get("Categoryname");
}
}
});
return v;
}
我的问题是如何在内部类中访问非final变量。(因为在getView
方法中position
变量是非最终的并且它是动态变化的)
答案 0 :(得分:0)
尝试在getView()中将position定位为final:
public View getView(final int position, View convertView, ViewGroup parent) {