0

リストビューにたくさんのチェックボックスがあるとします。

DB からいくつかのデータをフェッチして、それらのチェックボックスをオンに設定しています。

各チェックボックスには、いくつかの特定の checkedListeners があります。

DBからチェックする必要があることが判明した場合にチェックボックスがチェックされている場合、OnCheckedChangedListener機能しますか?

私は問題に直面しています、

if (type.equals("technicalskills") || type.equals("programmingskills")) {
    listChecked = Base.user_technical_skills.split(",");
    setChecked(mHolder.mCheck,listChecked,i);
    if (i == 1 && type.equals("technicalskills") && ((Base.user_technical_skills.contains("MS-Office") && listChecked.length > 1) || (!Base.user_technical_skills.contains("MS-Office") && listChecked.length > 0))) {
        position == 1;
        mHolder.mCheck.setChecked(true);
        //UserDetails.prog_listView_container.setExpanded(true);
    }
}

mHolder.mCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, final boolean b) {
        if(type.equals("technicalskills") && position == 1) {
            if (b) {
                UserDetails.prog_listView_container.expand();
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
                    UserDetails.prog_listView.setAlpha(0.0f);
                    UserDetails.prog_listView.animate()
                            .alpha(1.0f)
                            .setDuration(800);
                }
            } else {
                UserDetails.prog_listView_container.collapse();
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
                    UserDetails.prog_listView.animate()
                            .alpha(0.0f)
                            .setDuration(800);
                }
            }
        }
    }
});

このコード全体は、BaseAdapter を拡張する Adapter の getView() メソッド内にあります。

mcheck.setChecked(true);コードで設定している場合、OnCheckedChangedListener実行されません。

4

0 に答える 0