Android API之CheckedTextView demo(单选,多选)

类CheckedTextView继承超类TextView并实现Checkable接口。当ListView的setChoiceMode方法并设定为CHOICE_MODE_SINGLE或者CHOICE_MODE_MULTIPLE,而非CHOICE_MODE_NONE时,使用此类是很有用的。

使用范例:

  1. /res/layout/main.xml中添加相应资源ID
<ListView
    android:id="@+id/listView"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
/>
<CheckedTextView 
    android:id="@+id/checkedTextView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:text="@string/checkedTextView1"
/>
<CheckedTextView  
    android:id="@+id/checkedTextView2"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:text="@string/checkedTextView2" 
/>
<CheckedTextView 
    android:id="@+id/checkedTextView3"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:text="@string/checkedTextView3"  
/>

   
<CheckedTextView  
    android:id="@+id/checkedTextView4"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"  
    android:text="@string/checkedTextView4"
/>
  1. /res/values/strings.xml 资源
<string name="hello">TextView多选框</string>   
<string name="app_name">CheckedTextView</string>   
<string name="checkedTextView1">TextView多选框1</string>   
<string name="checkedTextView2">TextView多选框2</string>  
<string name="checkedTextView3">TextView多选框3</string>  
<string name="checkedTextView4">TextView多选框4</string>
  1. 源代码中使用
listView=(ListView)findViewById(R.id.listView);     
checkedTextView1=(CheckedTextView)findViewById(R.id.checkedTextView1);      
checkedTextView2=(CheckedTextView)findViewById(R.id.checkedTextView2);     
checkedTextView3=(CheckedTextView)findViewById(R.id.checkedTextView3);    
checkedTextView4=(CheckedTextView)findViewById(R.id.checkedTextView4);
      
//设置checkedTextView1为选中状态      
checkedTextView1.setChecked(true);            
//设置checkedTextView2的页边距,即距上/下/左/右各20像素,默认为未选中状态     
checkedTextView2.setPadding(20, 20, 20, 20);     
//设置checkedTextView3为选中状态,并更改其显示图标,使用android系统资源arrow_down_float   
checkedTextView3.setChecked(true);      
checkedTextView3.setCheckMarkDrawable(android.R.drawable.arrow_down_float);     
//设置checkedTextView4反转状态,由默认的未选中反转为选中状态       
checkedTextView4.toggle();
//点击状态后变更相反,如选中变为未选中,未选中的变为选中
checkedTextView1.setOnClickListener(new View.OnClickListener()
{                           
                          
    @Override                           
    public void onClick(View v) {                           
    // TODO Auto-generated method stub                                   
     checkedTextView1.toggle();                        
}
});       

//点击状态后变更相反,如选中变为未选中,未选中的变为选中
checkedTextView2.setOnClickListener(new View.OnClickListener()
{                           
                          
    @Override                           
    public void onClick(View v) {                           
    // TODO Auto-generated method stub                                   
     checkedTextView2.toggle();                        
}
});        


 

 //点击状态后变更相反,即下三角转化为上三角符号
checkedTextView3.setOnClickListener(new View.OnClickListener()
{                  
    @Override                 
    public void onClick(View v) {                           
    // TODO Auto-generated method stub  
checkedTextView3.setCheckMarkDrawable(android.R.drawable.arrow_up_float);               
    }

});

 //点击状态后变更相反,如选中变为未选中,未选中的变为选中
checkedTextView4.setOnClickListener(new View.OnClickListener()
{                           
                          
    @Override                           
    public void onClick(View v) {                           
    // TODO Auto-generated method stub                                   
     checkedTextView4.toggle();                        
}
});        

       
//设置listView的模式为CHOICE_MODE_SINGLE   
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);