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;
}
}
});