在Android中的CheckedTextView中自定义图形

时间:2013-09-19 06:44:31

标签: android android-listview android-custom-view checkedtextview

我正在使用CheckedTextView中的ListView。 要更改CheckedTextView框(选中/取消选中),我正在使用此方法:

protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

    ...

        SoundDialog.Builder alert;
        v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
        switch (soundPreference.getType()) {
        case BOOLEAN:
            CheckedTextView checkedTextView = (CheckedTextView) v;

            if (checkedTextView.isChecked()){
                checkedTextView.setCheckMarkDrawable(R.drawable.ic_blue);
            } else {
                checkedTextView.setCheckMarkDrawable(R.drawable.ic_red);
            }

            boolean checked = !checkedTextView.isChecked();
            ((CheckedTextView) v).setChecked(checked);

            ...

这有效但有问题,该方法在listview监听器(onListItemClick (ListView l, View v, int position, long id) {...)内执行 当您输入活动时,CheckedTextView将具有其默认图像,直到您单击该项并执行该方法。

如果在onListItemClick中创建CheckedTextView,我如何在onCreate(if (checkedTextView.isChecked ()) {...)中实现此方法?

我搜索了很多但找不到答案。

我感谢任何帮助

提前感谢。

1 个答案:

答案 0 :(得分:1)

您必须确定是否必须在ListAdapter类的getView()方法中检查CheckedTextView。监听器中的代码只有在生成特定的Listener事件时才会执行,除非您在onCreate()方法中写入,否则不会执行Listener代码。

抱歉我的英语.....