androidcheckbox單選框
❶ 如何把checkbox做成單選框
(1)復選框可以允許你選擇多個設置,而單選框則允許你選擇一個設置;
這兩個選框的區別是一個通過用圓圈表示,一個通過用方框表示。
(2)單選框:只能選中一項命令。是圖形用戶界面上的一種控制項。它容許用戶在一組選項中選擇其中一個。單選框的外觀一般是一個空白的圓洞。而在它的旁邊則通常有一個文字的標簽。它的用途除了描述之外,還可用於選擇該選擇:當用戶按下標簽,所應的選擇鈕就會被選上。已選上的選擇鈕一般會在圓洞內加上一小圓點。另外為了加強可親性accessibility),單選框可以對應上一個快速鍵(access key),使用家可使用鍵盤上的按鍵來選擇所應的選擇鈕。一般來說,標簽上的快速鍵會用底線標示,例如「Activate」代表A為快速鍵。而當快速鍵沒有在標簽內出現,便會用括弧表示,例如「啟用(A)」。單選框一旦選上,除了選擇另一個選項之外,便沒法取消。所以有時在一些用戶介面上會有空白的選擇、重置或默認按鈕。
(2)復選框,也叫做CheckBox,是一種基礎控制項。.NET的工具箱里包含這個控制項,它可以通過其屬性和方法完成復選的操作。為了完成更多復雜的需求,也出了第三方控制項的復選框。只需要將其dll添加到工具箱里,就可以使用更多功能的復選框控制項。
❷ Android清除checkbox選中狀態 就是在點擊提交按鈕後,選中的取消掉
Radiobutton既單選框,多個單選框中必須有一個是選中的
如果你想選擇之後又取消,那麼要使用CheckBox來實現
改變它的狀態,方式有三種:
1、XML中申明 android:check="true|false"
2、代碼動態改變 checkBox.setChecked(true|false);
3、用戶觸摸 這個由android系統自動改變
❸ 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_top最上面的復選框 checkBox_top.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if (checkBox_top.isChecked()) { checkBox_one.setChecked(true); checkBox_two.setChecked(true); checkBox_three.setChecked(true); }else { checkBox_one.setChecked(false); checkBox_two.setChecked(false); checkBox_three.setChecked(false); } } });
❺ 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" />
❻ 安卓eclipse checkbox是什麼意思
CheckBox控制項俗稱復選框,OptionButton控制項俗稱單選框,它們的功能是什麼呢?
看個例子:打開Win98中控制項面板的「添加/刪除程序」,這些方框能夠選擇多項,所以叫做「復選框」。
而當我打開Internet Explorer的Internet 選項對話框,由於這些選項,只能選擇其中之一,所以稱為單選框.
這些就是較常見的單選框和復選框。
❼ android怎麼把checkbox狀態設置為選中狀態
CheckBox和Button一樣,也是一種古老的控制項,它的優點在於,不用用戶去填寫具體的信息,只需輕輕點擊,缺點在於只有「是」和「否」兩種情況,但往往利用它的這個特性,來獲取用戶的一些信息。如一個身份表單中,常常讓用戶填寫「是否已經結婚」,顯然讓用戶去填寫「是」或「否」是不合理的,理想的情景是用如下控制項:
建立checkBox的布局:
<CheckBox
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="已婚"
></CheckBox>
顯然,Checked屬性是CheckBox最重要的屬性之一,改變它的方式有三種:
1、XML中申明,在xml布局中指定默認的狀態android:checked="true"。
2、代碼動態改變,在java中可以直接調用checkbox.setChecked(true);
3、用戶觸摸,即注冊OnCheckedChangeListener事件。
實例如下:
//獲取CheckBox實例
CheckBox cb = (CheckBox)this.findViewById(R.id.cb);
//綁定事件
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
Toast.makeText(MyActivity.this, arg1?"選中了":"取消了選中" , Toast.LENGTH_LONG).show();
}
});
在開發當中,默認的狀態是未選中的,如果需要默認選中,通常是在xml中指定即可。
❽ android checkbox全選不全選單選
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.group_list2);
initBottomBar();
listView = (ListView) findViewById(R.id.groupListView);
GroupService service = new GroupService(this);
groupList = service.getGroupList(null);
adapter = new GroupListAdapter(this, groupList);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long arg3) {
// TODO Auto-generated method stub
Group group = groupList.get(position);
CheckBox ctb = (CheckBox) view.findViewById(R.id.checkBox);
ctb.toggle();
adapter.selectedMap.put(group.id, ctb.isChecked());
adapter.notifyDataSetChanged();
if(adapter.selectedMap.containsValue(true)){
add2ScanListBtn.setEnabled(true);
}else{
add2ScanListBtn.setEnabled(false);
}
}
});
}
private void initBottomBar(){
bottomBarView = (LinearLayout) findViewById(R.id.bottomBar);
add2ScanListBtn = (Button) bottomBarView.findViewById(R.id.add2ScanListBtn);
add2ScanListBtn.setEnabled(false);
checkBtn = (Button) bottomBarView.findViewById(R.id.checkBtn);
closeCheckBtn = (Button) bottomBarView.findViewById(R.id.closeCheckBtn);
add2ScanListBtn.setOnClickListener(this);
checkBtn.setOnClickListener(this);
closeCheckBtn.setOnClickListener(this);
}
❾ android關於單選框和下拉框的問題,或者有沒更好的解決方案,我的目的是通過單選框的改變
var cc3 = $('.formc select[@name="country"]').attr("id");
//清空下拉框//
$("#select").empty();$("#select").html('');
//添加下拉框的option
$("<option value='1'>1111</option>").appendTo("#select")
稍微解釋一下:
select[@name='country'] option[@selected]
表示具有name 屬性,並且該屬性值為』country』 的select元素裡面的具有selected 屬性的option 元素。可以看出有@開頭的就表示後面跟的是屬性。
單選框:
//得到單選框的選中項的值(注意中間沒有空格)
$("input[@type=radio][@checked]").val();
//設置單選框value=2的為選中狀態.(注意中間沒有空格)
$("input[@type=radio][@value=2]").attr("checked",'checked');
復選框:
//得到復選框的選中的第一項的值 再不懂得花 請給我90財富 再說
❿ android中的checkBox如何實現單選
Android中checkbox默認為復選框,也就是多選,實現單選的話,可以讓checkbox添加監聽,當已經有一個點擊了,點擊另外一個的時候,修改默認的狀態,實現單選,示例如下:
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;
}
}
});