Problem with setText() on custom CheckBox

by mobilek...@googlemail.com » Thu, 05 Mar 2009 07:13:29 GMT


Sponsored Links
 Hi,

I've implemented a custom CheckBox view and faced a probelm with
adding text to it.

Here's my implementation:

public class MyCheckBox extends CheckBox{

private int imgResourceFocusedChecked, imgResourceFocusedNotChecked,
imgResourceNotFocusedChecked, imgResourceNotFocusedNotChecked;

        public MyCheckBox(Context context){
                super(context);
        }

        public MyCheckBox(Context context, AttributeSet attrs) {
                super(context, attrs);
                init(attrs);
        }

        public MyCheckBox(Context context, AttributeSet attrs, int defStyle)
{
                super(context, attrs, defStyle);
                init(attrs);
        }

        private void init(AttributeSet attrs){
                TypedArray a = getContext().obtainStyledAttributes(attrs,
R.styleable.MyCheckBox);
                imgResourceFocusedChecked = a.getResourceId
(R.styleable.MyCheckBox_checkboxFocusedChecked, -1);
                imgResourceFocusedNotChecked = a.getResourceId
(R.styleable.MyCheckBox_checkboxFocusedNotChecked, -1);
                imgResourceNotFocusedChecked = a.getResourceId
(R.styleable.MyCheckBox_checkboxNotFocusedChecked, -1);
                imgResourceNotFocusedNotChecked = a.getResourceId
(R.styleable.MyCheckBox_checkboxNotFocusedNotChecked, -1);
                strResourceText = a.getResourceId
(R.styleable.MyCheckBox_checkboxText, -1);
        }

        public void onDraw(Canvas canvas){
                if (this.isChecked()){
                        if (this.isFocused()){
                                
this.setBackgroundResource(imgResourceFocusedChecked);
                        } else {
                                
this.setBackgroundResource(imgResourceNotFocusedChecked);
                        }
                } else {
                        if (this.isFocused()){
                                
this.setBackgroundResource(imgResourceFocusedNotChecked);
                        } else {
                                
this.setBackgroundResource(imgResourceNotFocusedNotChecked);
                        }
                }
        }
}


Then from my layout xml I do something like:

<MyCheckBox
        android:id="@+id/checkBox"
        android:layout_width="32px"
        android:layout_height="32px"
        android:text="This is a check box."
        cb:checkboxFocusedChecked="@drawable/cb_focused_checked"
        cb:checkboxFocusedNotChecked="@drawable/cb_focused_not_checked"
        cb:checkboxNotFocusedChecked="@drawable/cb_not_focused_checked"
        cb:checkboxNotFocusedNotChecked="@drawable/
cb_not_focused_not_checked"
        style="@style/myStyle"/>

However, the text never comes up. Using the same technique with Button
and EditText views works fine , but not with check boxes. Hope to get
an advice of how to implement the proper behaviour. Thanks!




--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Auto-Complete/AutoSuggestion Dictionary

Hi All,

 Does application by default add the data to the dictionary. What
would be the solution to restrict any application from adding it to
the autocomplete dictionary..


Thanks
PMal

-- 
.

2. Android help

How do you access the Android help table of contents in Eclipse?

-- 

3. psneuter

4. Android Map Query (Please help me out)

5. Hide a keypad

6. Grey appears pink when scrolling - ListView scrollCache

7. Kernel network stack