当前位置:首页 » 安卓系统 » 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"
/>

热点内容
arch搭建dhcp服务器 发布:2025-08-18 05:50:07 浏览:16
php游戏后台 发布:2025-08-18 05:34:05 浏览:63
安卓手机怎么看不了电池健康值 发布:2025-08-18 05:27:48 浏览:301
php表格显示数据库数据 发布:2025-08-18 05:20:44 浏览:722
提供固定ip的云服务器 发布:2025-08-18 05:14:25 浏览:748
codeblockslinux编译 发布:2025-08-18 05:14:24 浏览:678
编译程序比较复杂所以执行率高 发布:2025-08-18 05:13:50 浏览:174
计算机软件编程 发布:2025-08-18 05:13:50 浏览:701
vcenter搭建域服务器 发布:2025-08-18 05:08:49 浏览:513
serv文件怎么上传服务器 发布:2025-08-18 05:07:16 浏览:59