ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] 안드로이드 checkedTextView 사용하기
    안드로이드 스튜디오/텍스트뷰(TextView) 2022. 9. 15. 23:14

    CheckedTextView

    1. CheckedTextView 개요

    CheckedTextView는 Checkbox와 TextView를 결합시켜 사용자들이 정보를 읽고 체크 표시를 할 수 있게 도와주는 도구입니다.

    개발자 입장에서 일일이 TextView와 Checkbox를 구현해야 하는 번거로움을 한번에 해결할 수 있습니다.

    2. CheckedTextView 구현 (XML)

    <LinearLayout
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="match_parent"
    	android:layout_height="match_parent"
    	android:gravity="center"
    	android:orientation="vertical">
    
    	<TextView
    		android:id="@+id/txt"
    		android:layout_width="match_parent"
    		android:layout_height="wrap_content"
    		android:text="당신의 이상형은?"
    		android:gravity="center"
    		android:layout_marginBottom="10dp"
    		android:textColor="#009294"/>
    
    	<CheckedTextView
    		android:id="@+id/ckdTv1"
    		android:layout_width="match_parent"
    		android:layout_height="wrap_content"
    		android:text="키가 큰 사람"
    		android:gravity="center"
    		android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    		android:layout_marginRight="15dp"
    		android:layout_marginLeft="15dp"/>
    
    	<CheckedTextView
    		android:id="@+id/ckdTv2"
    		android:layout_width="match_parent"
    		android:layout_height="wrap_content"
    		android:text="많이 웃는 사람"
    		android:gravity="center"
    		android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    		android:layout_marginRight="15dp"
    		android:layout_marginLeft="15dp"/>
    
    </LinearLayout>

    checkMark 속성을 통해 체크박스 모양을 정합니다. 기본 attribute도 가능하며 Drawable 파일과 tint 속성을 이용해 커스터마이징도 가능합니다.

    3. CheckedTextView 구현 (Java)

    public class MainActivity extends Activity 
    {
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);	
    		
    		CheckedTextView ckdTv1 = findViewById(R.id.ckdTv1);
    		CheckedTextView ckdTv2 = findViewById(R.id.ckdTv2);
    		
    		ckdTv1.setChecked(false);
    		ckdTv2.setChecked(false);
    		
    		ckdTv1.setClickable(true);
    		ckdTv2.setClickable(true);
    		
    		
    		View.OnClickListener listner = new View.OnClickListener(){
    
    			@Override
    			public void onClick(View view)
    			{
    				((CheckedTextView) view).toggle();
    			}};
    			
    		ckdTv1.setOnClickListener(listner);
    		ckdTv2.setOnClickListener(listner);
    	}
    }

    setChecked 메소드를 통해 체크박스 상태를 변경할 수 있으며
    toggle 메소드를 이용해 if문 없이도 간단하게 체크박스 상태를 반대로 변경할 수 있습니다.

    추천하는 활용법은 단독으로 사용하기보다 ListViewRecyclerView를 이용해 복제하여 사용하는 것입니다.

    4. 실제 구현 화

    개발자 문서:

    https://developer.android.com/reference/android/widget/CheckedTextView


    댓글

Designed by Tistory.