如何从Android ListView中的内部类访问外部类非final变量?

时间:2015-05-22 04:42:57

标签: android listview android-listview

这是我的情景。

我正在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变量是非最终的并且它是动态变化的)

1 个答案:

答案 0 :(得分:0)

尝试在getView()中将position定位为final:

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