在你的選項中加入 android:checked="true" 這樣的代碼也就是默認選中

目前創(chuàng)新互聯(lián)公司已為數千家的企業(yè)提供了網站建設、域名、網站空間、網站托管、服務器托管、企業(yè)網站設計、尼河口網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
例如:
TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="愛好:"
android:width="50px"
android:height="30px" /
CheckBox android:text="籃球"
android:id="@+id/like1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /
CheckBox android:text="足球"
android:id="@+id/like2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"/ //我在足球這里加了個默認選中
CheckBox android:text="下棋"
android:id="@+id/like3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/
CheckBox android:text="游泳"
android:id="@+id/like4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/
AlertDialog.Builder有現成的API可以實現顯示復選框的內容。
1.創(chuàng)建AlertDialog.Builder并設置數據源
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("復選框"); //設置對話框標題
builder.setIcon(android.R.drawable.ic_menu_more); //設置對話框標題前的圖標
final String[] data = getResources().getStringArray(R.array.radio); //通過resources 得到strings.xml中的字符串數組
boolean[] state = new boolean[data.length];
for(int i=0; idata.length; i++){
state[i] = sboolean.get(i); //將狀態(tài)集合中的數據取出來,下次選擇時候會默認選中
}
2.注冊點擊事件,并記錄復選的數據
/*
* 第一個參數是,數據原,可以是數組,也可以傳strings.xml那的字符串ID,但是建議用數組,因為多選監(jiān)聽返回的是數組的標下
* 第二個參數是,默認的選中位置,是個boolean數組,對應item的位置
* 第三個是列表點擊監(jiān)聽事件
*/
builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//注冊單選擇監(jiān)聽事件
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"你選擇了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]); //選擇的時候要保存起來
}else{
Toast.makeText(context,"你取消了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]); //取消選中的時候要刪除掉
}
sboolean.put(which, isChecked); //每次選擇都要記錄下這個item的狀態(tài)
}
});
3.增加確定和取消按鍵
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了確定,選擇的是: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});
4.設置dialog的相關參數,并彈出
builder.setNegativeButton("取消", null); //取消不做任何處理
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創(chuàng)建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();
提到只讀,很容易想到使用readonly屬性,但是對于復選框來說,這個屬性和期望得到的效果是有差別的。原因在于readonly屬性關聯(lián)的是頁面元素的value屬性(例如textbox,設置了readonly就不能修改輸入框的文本內容),而復選框的勾選/取消并不改變其value屬性,改變的只是一個checked狀態(tài)。所以對于checkbox來說,設置了readonly,仍然是可以勾選/取消的。效果如下:
input
type="text"
name="realname"
value="只讀的文本內容..."
readonly="readonly"
/
input
type="checkbox"
name="optiona"
readonly="readonly"
/option
a
input
type="checkbox"
name="optionb"
readonly="readonly"
/option
b
input
type="checkbox"
name="optionc"
readonly="readonly"
/option
c
option
a
option
b
option
c
和readonly類似的,還有一個disabled屬性,這個屬性的作用是設置頁面元素為不可用,即不可進行任何交互操作(包括不可修改value屬性、不可修改checked狀態(tài)等)。效果如下:
input
type="text"
name="realname"
value="輸入的文本內容..."
disabled="disabled"
/
input
type="checkbox"
name="optiona"
disabled="disabled"
/option
a
input
type="checkbox"
name="optionb"
disabled="disabled"
/option
b
input
type="checkbox"
name="optionc"
disabled="disabled"
/option
c
option
a
option
b
option
c
從上面我們可以看到,無論是readonly還是disabled,都沒有實現我們期望的效果。既然直接實現不了,那么我們可以變通一下,模擬實現。代碼如下:
input
type="checkbox"
name="chkAllowed"
onclick="return
false;"
checked="checked"
/
開關 (On/Off Switch) 出現在列表項上, 表示這個列表項還有詳細頁面 (比如設置中的 Wi-Fi, 你點擊列表項是進入 Wi-Fi 詳情, 點擊開關是開/關 Wi-Fi). 而選框 (Checkbox) 不具備此功能 (即當用戶點擊 Checkbox 或列表項都是勾選/取消勾選, 不會進入詳情頁面).
故此, 當你認為這個設置有必要加入詳情頁面的時候, 即可采用 On/Off Switch, 沒有詳情頁的話, 就用 Checkbox.
另外, 如果這個設置的說明文字繁多, 在列表中無法顯示完全的話, 建議單獨新開一個詳細頁面, 并在詳細頁面中使用開關 (比如設置中的 Android Beam 功能開關).
1.首先在drawable文件夾中添加drawable文件checkbox_style.xml。
?xml version="1.0" encoding="utf-8"?
selector xmlns:android=""
item android:drawable="@drawable/checkbox_pressed" android:state_checked="true"/
item android:drawable="@drawable/checkbox_normal" android:state_checked="false"/
item android:drawable="@drawable/checkbox_normal"/
/selector
2.在values文件夾下的styles.xml文件中添加CustomCheckboxTheme樣式。
style name="CustomCheckboxTheme" parent="@android:style/Widget.CompoundButton.CheckBox"
item name="android:button"@drawable/checkbox_style/item
/style
3.在布局文件中使用CustomCheckboxTheme樣式。
CheckBox
android:id="@+id/select_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CustomCheckboxTheme" /
使用到的圖片資源
checkbox_normal.png
checkbox_pressed.png
當前文章:android復選框,android復選框count=0
標題來源:http://chinadenli.net/article49/dsiphhh.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、定制網站、外貿網站建設、網站收錄、靜態(tài)網站、面包屑導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)