當前位置:首頁 » 安卓系統 » android設置checkbox

android設置checkbox

發布時間: 2022-05-18 03:49:13

⑴ Android中的checkBOX在代碼中怎麼設置至少選中一個

CheckBox和Button一樣,是android系統提供的最原始的控制項,它的優點在於,不用用戶去填寫具體的信息,只需輕輕點擊,缺點在於只有「是」和「否」兩種情況,但我們往往利用它的這個特性,來獲取用戶的一些信息。
1.CheckBox的常用屬性
checked屬性是CheckBox最重要的屬性之一,改變方式有兩種,xml中定義
android:checked="true|false"
表示選中和不選中
2.在代碼中設置選擇狀態
checkBox.setChecked(true|false);
3.獲取CheckBox的狀態
checkBox.isChecked();
true表示選中,false表示未選中
4.checkBox的應用
1.如果不確定某一組選項有幾個的時候,例如多選之前刪除,那麼要使用listView
+
adapter
其中checkBox存放在listView的adapter中,代碼實現比較復雜,需要自己去注冊checkBox的事件
2.如果checkBox的選項是已經知的,例如興趣愛好,已知有多少個選項的情況下,那麼你只需要用個線性布局做為容器,將checkBox都放到這個容器中
3.獲取選中的文本
如果是用listView的話,只需要自己在adapter中寫一個方法,返回選中的數據即可得到文本,如果是其它容器做的話,只能去遍歷這個布局下的所有checkBox
然後調用
if(checkBox.isChecked()){
checkBox.getText().toString();
//即可得到選中的文本
}
有關checkBox的更多用法,建議查看官網API文檔

⑵ android 如何改變checkbox樣式

1、首先res/drawable中定義編寫如下樣式:
<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/check_true" android:state_checked="true"></item>
<item android:drawable="@drawable/check_true" android:state_selected="true"></item>
<item android:drawable="@drawable/check_true" android:state_pressed="true"></item>
<item android:drawable="@drawable/check_false"></item>
</selector>

2、在layout中添加checkbox控制項

<CheckBox
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_check"
android:button="@null"
android:checked="true"/>
其中drwable/btn_check為1中頂一個文件名稱,另外必須將android:button設置為@null。
@drawable/check_true和@drawable/check_false為checkbox不同狀態的圖片,可自行設計。

⑶ 大家好跪求,用安卓實現一個復選框選中另一個復選框默認選中,代碼怎麼寫呢

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

例如:
<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"/>

⑷ android中的checkbox如何設置橫向顯示

這是設置方面的問題,LinearLayout有一個屬性,是整個layout內View的排列方向的,
android:orientation="vertical",為豎向的,默認。
android:orientation="horizontal",才為橫向的,
你需在Layout的xml配置上加上這句才可以的。

⑸ android中的checkBox如何實現單選

Android中checkbox默認為復選框,也就是多選,實現單選的話,可以讓checkbox添加監聽,當已經有一個點擊了,點擊另外一個的時候,修改默認的狀態,實現單選,示例如下:

java">publicstaticinttemp=-1;
checkBox=(CheckBox)parentView.findViewById(R.id.cbox_isselect);
//做個標記
checkBox.setId(groupPosition);
//checkbox監聽
checkBox.setOnCheckedChangeListener(newOnCheckedChangeListener(){
@Override
publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){
if(isChecked)
{
//這段代碼來實現單選功能
if(temp!=-1)
{
CheckBoxtempButton=(CheckBox)MyRingBoxActivity.this.findViewById(temp);
if(tempButton!=null)
{
tempButton.setChecked(false);
}
}
//得到當前的position
temp=buttonView.getId();
}else{
temp=-1;
}

}
});

⑹ android怎麼讓listview的checkbox單選

還是先來看看是不是你想要的效果:

不廢話,直接上代碼,很簡單,代碼里都有注釋

單選

public class SingleActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_single);

listView = (ListView) this.findViewById(R.id.lvGroup);

groups = new ArrayList<String>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// 取得ViewHolder對象,這樣就省去了通過層層的findViewById去實例化我們需要的cb實例的步驟

SingleAdapter.ViewHolder viewHolder = (SingleAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的選中狀態改為當前狀態的反,gridview確保是單一選中

}

};

SingleAdapter adapter = new SingleAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class SingleAdapter extends BaseAdapter {

private Activity activity;//上下文

private ArrayList<String> list;

private LayoutInflater inflater = null;//導入布局

private int temp = -1;

public SingleAdapter(Activity context, ArrayList<String> list) {

this.activity = context;

this.list = list;

inflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每顯示一行數據,該函數就執行一次

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {//當第一次載入ListView控制項時 convertView為空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以當ListView控制項沒有滑動時都會執行這條語句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//為view設置標簽

} else {//取出holder

holder = (ViewHolder) convertView.getTag();

}

//設置list的textview顯示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根據isSelected來設置checkbox的選中狀況

holder.cb.setId(position);//對checkbox的id進行重新設置為當前的position

holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {

if (isChecked) {//實現checkbox的單選功能,同樣適用於radiobutton

if (temp != -1) {

//找到上次點擊的checkbox,並把它設置為false,對重新選擇時可以將以前的關掉

CheckBox tempCheckBox = (CheckBox) activity.findViewById(temp);

if (tempCheckBox != null)

tempCheckBox.setChecked(false);

}

temp = compoundButton.getId();//保存當前選中的checkbox的id值

}

}

});

if (position == temp)//比對position和當前的temp是否一致

holder.cb.setChecked(true);

else

holder.cb.setChecked(false);

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

}

多選:

public class MulActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mul);

listView = (ListView) this.findViewById(R.id.list);

groups = new ArrayList<>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position,

long id) {

// 取得ViewHolder對象,這樣就省去了通過層層的findViewById去實例化我們需要的cb實例的步驟

MulAdapter.ViewHolder viewHolder = (MulAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的選中狀態改為當前狀態的反,gridview確保是單一選中

MulAdapter.getIsSelected().put(position, viewHolder.cb.isChecked());//將CheckBox的選中狀況記錄下來

}

};

MulAdapter adapter = new MulAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class MulAdapter extends BaseAdapter {

private Context context;//上下文

private ArrayList<String> list;

//控制CheckBox選中情況

private static HashMap<Integer, Boolean> isSelected;

private LayoutInflater inflater = null;//導入布局

public MulAdapter(Context context, ArrayList<String> list) {

this.context = context;

this.list = list;

inflater = LayoutInflater.from(context);

isSelected = new HashMap<Integer, Boolean>();

initData();

}

private void initData() {//初始化isSelected的數據

for (int i = 0; i < list.size(); i++) {

getIsSelected().put(i, false);

}

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每顯示一行數據,該函數就執行一次

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {//當第一次載入ListView控制項時 convertView為空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以當ListView控制項沒有滑動時都會執行這條語句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//為view設置標簽

} else {//取出holder

holder = (ViewHolder) convertView.getTag();//the Object stored in this view as a tag

}

//設置list的textview顯示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根據isSelected來設置checkbox的選中狀況

holder.cb.setChecked(getIsSelected().get(position));

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

public static HashMap<Integer, Boolean> getIsSelected() {

return isSelected;

}

public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {

MulAdapter.isSelected = isSelected;

}

}

以上所述是給介紹的Android中ListView + CheckBox實現單選、多選效果

⑺ android中怎麼改變checkbox狀態

//獲取CheckBox實例
CheckBoxcb=(CheckBox)this.findViewById(R.id.checkbox);
//設置Checkbox的狀態,true為選中,false為不選中
cb.setChecked(true);

⑻ Android的ListView如何做到點擊其中一項Item就同時把CheckBox設置為選中

1、設置checkbox為不可點擊
2、用一個數組維護所有Item選中狀態
3、當選中狀態發生變化時更新數組
4、當選中狀態發生變化時刷新列表
5、根據item的選中狀態設置checkbox的選中狀態

⑼ android怎麼把checkbox狀態設置為選中狀態

android:checked="true"就是設置checkbox狀態為選中狀態。

⑽ android checkbox 怎麼設置復選框的只讀效果不讓用戶勾選

提到只讀,很容易想到使用readonly屬性,但是對於復選框來說,這個屬性和期望得到的效果是有差別的。原因在於readonly屬性關聯的是頁面元素的value屬性(例如textbox,設置了readonly就不能修改輸入框的文本內容),而復選框的勾選/取消並不改變其value屬性,改變的只是一個checked狀態。所以對於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狀態等)。效果如下:
<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"
/>

熱點內容
c編譯器版本查詢 發布:2025-08-17 22:01:33 瀏覽:136
思科怎麼保存交換機的配置 發布:2025-08-17 21:54:30 瀏覽:286
雲編程電腦 發布:2025-08-17 21:53:37 瀏覽:153
谷歌訪問助手安裝 發布:2025-08-17 21:48:34 瀏覽:547
hibernate一級緩存二級緩存 發布:2025-08-17 21:48:14 瀏覽:340
家裡沒有伺服器怎麼回事 發布:2025-08-17 21:44:36 瀏覽:36
卡宴什麼配置有尾翼 發布:2025-08-17 21:39:29 瀏覽:368
人事管理系統源碼asp 發布:2025-08-17 21:33:44 瀏覽:528
乘以25的簡便演算法 發布:2025-08-17 21:29:22 瀏覽:228
php限制登錄 發布:2025-08-17 21:29:15 瀏覽:683