这段代码:“performClick()”,完全不起作用?

时间:2016-09-12 07:49:20

标签: android

    CheckBox1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (CheckBox1.isChecked()) {
                doThis();
            } else {
                doThis();
            }
        }
    });


 private void doThis() {
       String sar="1";   

       try {
        if (sar.equals("")) {
            l_view.performItemClick(l_view, Integer.parseInt(Integer.parseInt(sar)), l_view.getItemIdAtPosition(Integer.parseInt(sar)));
        }
        if (sar.equals("1")) {
            l_view.performItemClick(l_view, Integer.parseInt(Integer.parseInt(sar)), l_view.getItemIdAtPosition(Integer.parseInt(sar)));
        }

    } catch (Exception e) {
    }
}

如果我手动点击复选框,此代码效果很好。

但如果我使用CheckBox1.performClick();复选框已选中,但doThis()无效。

我该怎么做?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

将onClickListener更改为此

    CheckBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    doThis();
                } else {
                    doThis();
                }
            }
        });

See this Image

答案 1 :(得分:0)

我找到了解决方案。谢谢你的帮助。

private void delay() {
    new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
        @Override
        public void run() {
           doThis();
        }
    }, 500);
}