CheckedTextView не активируется - PullRequest
       29

CheckedTextView не активируется

0 голосов
/ 04 ноября 2011

Привет! Я установил CheckedTextView, но не могу запустить событие onClick. Я помещаю код onClick в onCreate main.layout, но получаю нулевой указатель в строке 101, который является chkBox.setOnClickListener (new View.OnClickListener (). Listview создается в onPostExecute AsyncTask. Может кто-нибудь помочь, пожалуйста?

Мой CheckedTextView:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"  
         android:id="@+id/listCheckboxview"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:layout_weight="1" android:gravity="left"  
         android:textColor="#0075AB"  android:textStyle="bold"  android:textSize="14dip" 
         android:checkMark="?android:attr/listChoiceIndicatorMultiple"   
         android:clickable="true" 
         android:focusable="true" 
         android:text=""  
         /> 

Мое событие onClick:

CheckedTextView chkBox = (CheckedTextView) findViewById(R.id.listCheckboxview); 
        chkBox.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) 
        { 
            ((CheckedTextView) v).toggle(); 
        } 
    });

Ответы [ 2 ]

0 голосов
/ 06 октября 2015

Вы можете использовать ToggleButton с нулевым фоном и нулевой кнопкой.Компонент ToggleButton имеет еще одну интересную особенность, которая устанавливает текст в состояние «включено», а другой - в состояние «выкл.».В приведенном ниже примере я также включил селектор цвета текста.

<ToggleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@null"
    android:background="@null"
    android:paddingLeft="10dp"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:textColor="@drawable/toggle_text"
    android:textOn="My on state"
    android:textOff="My off state" />

toggle_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_checked="true"
        android:color="@color/app_color" />

    <item
        android:color="@android:color/darker_gray" />

</selector>
0 голосов
/ 04 ноября 2011

Я поместил код onClick в onCreate main.layout, но я получил нулевой указатель в строке 101, это chkBox.setOnClickListener (new View.OnClickListener ()

Это означает, что chkBox равно null, что означает, что Android не находит R.id.listCheckboxview. Убедитесь, что вы звоните findViewById() по правильному адресу (здесь вы, кажется, звоните по этому заданию, но в вашем вопросе упоминается ListView). Кроме того, попробуйте очистить проект (Project> Clean из главного меню Eclipse или ant clean из командной строки), поскольку иногда константы R не синхронизируются.

...