CheckBox默认的情况是未选中的状态,如果想修改这个默认值的话,可以将checkbox中的android:checked设置为true或者使用CheckBox.setChecked方法都可以实现复选的功能。
布局代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll_checkbox_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
<Button
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
/>
</LinearLayout>
activity代码
package ss.aa;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter.LengthFilter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.Toast;
public class CheckBoxDemoActivity extends Activity implements OnClickListener{
//存储checkbox控件的集合
private List<CheckBox> checkBoxList=new ArrayList<CheckBox>();
private LinearLayout ll_checkbox_list;
private Button btn_ok;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_ok=(Button)findViewById(R.id.btn_ok);
ll_checkbox_list=(LinearLayout)findViewById(R.id.ll_checkbox_list);
String[] strArr={"你是学生吗","你喜欢写代码吗","你喜欢林肯公园吗","你快乐吗"};
for(String str: strArr){
CheckBox checkbox=(CheckBox)View.inflate(this, R.layout.ui_checkbox, null);
checkbox.setText(str);
ll_checkbox_list.addView(checkbox);
checkBoxList.add(checkbox);
}
btn_ok.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String str="";
for(CheckBox checkBox:checkBoxList){
if(checkBox.isChecked()){
str+=checkBox.getText().toString();
}
}
Toast.makeText(this, str,Toast.LENGTH_SHORT).show();
}
}
以为在CheckBox checkbox=(CheckBox)View.inflate(this, R.layout.ui_checkbox, null);中要传入R.Layout.xxxx,因此新建一个
ui_checkbox.xml