Android学习精要-CheckedTextView控件
2016-08-11 09:09
393 查看
CheckedTextView控件
在Android技术中实现打勾的checked效果其实还有另外一个控件也可以实现,它就是CheckedTextView控件。
新建名称为android2的Android项目,更改布局文件main.xml的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1" android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout android:padding="10px" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<CheckedTextView android:tag="a1" android:id="@+id/checkedTextView1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView1" />
<CheckedTextView android:tag="a2" android:id="@+id/checkedTextView2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView2" />
<CheckedTextView android:tag="a3" android:id="@+id/checkedTextView3"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView4" />
<CheckedTextView android:tag="a4" android:id="@+id/checkedTextView4"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView5" />
<CheckedTextView android:tag="a5" android:id="@+id/checkedTextView5"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView6" />
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<CheckedTextView android:tag="A" android:id="@+id/checkedTextViewa"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewa" />
<CheckedTextView android:tag="B" android:id="@+id/checkedTextViewb"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewb" />
<CheckedTextView android:tag="C" android:id="@+id/checkedTextViewc"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewc" />
<CheckedTextView android:tag="D" android:id="@+id/checkedTextViewd"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewd" />
<Button android:text="Button" android:id="@+id/button2"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
</ScrollView>
由于本示例的控件比较多,为了能全部显示它们,所以用了带滚动条效果的控件。
文件Main.java的代码如下:
public class Main extends Activity {
private CheckedTextView checkedTextViewMul1;
private CheckedTextView checkedTextViewMul2;
private CheckedTextView checkedTextViewMul3;
private CheckedTextView checkedTextViewMul4;
private CheckedTextView checkedTextViewMul5;
private CheckedTextView checkedTextViewSinglea;
private CheckedTextView checkedTextViewSingleb;
private CheckedTextView checkedTextViewSinglec;
private CheckedTextView checkedTextViewSingled;
private Button getMulCheckedTextValue;
private Button getSingleCheckedTextValue;
private ArrayList<Integer> mulCheckedTextViewIdArray = new ArrayList();
private ArrayList<Integer> singleCheckedTextViewIdArray = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getMulCheckedTextValue = (Button) this.findViewById(R.id.button1);
getSingleCheckedTextValue = (Button) this.findViewById(R.id.button2);
checkedTextViewMul1 = (CheckedTextView) this
.findViewById(R.id.checkedTextView1);
checkedTextViewMul1.setChecked(true);
checkedTextViewMul2 = (CheckedTextView) this
.findViewById(R.id.checkedTextView2);
checkedTextViewMul3 = (CheckedTextView) this
.findViewById(R.id.checkedTextView3);
checkedTextViewMul3.setChecked(true);
checkedTextViewMul4 = (CheckedTextView) this
.findViewById(R.id.checkedTextView4);
checkedTextViewMul5 = (CheckedTextView) this
.findViewById(R.id.checkedTextView5);
checkedTextViewMul5.setChecked(true);
mulCheckedTextViewIdArray.add(checkedTextViewMul1.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul2.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul3.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul4.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul5.getId());
OnClickListener checkedTextViewMulListenerRef = new OnClickListener() {
public void onClick(View arg0) {
((CheckedTextView) arg0).toggle();
}
};
checkedTextViewMul1.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul2.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul3.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul4.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul5.setOnClickListener(checkedTextViewMulListenerRef);
getMulCheckedTextValue.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < mulCheckedTextViewIdArray.size(); i++) {
CheckedTextView findCheckedTextViewRef = (CheckedTextView) Main.this
.findViewById(mulCheckedTextViewIdArray.get(i));
if (findCheckedTextViewRef.isChecked() == true) {
Log.v("打勾的checkbox值是", ""
+ findCheckedTextViewRef.getTag());
}
}
}
});
checkedTextViewSinglea = (CheckedTextView) this
.findViewById(R.id.checkedTextViewa);
checkedTextViewSingleb = (CheckedTextView) this
.findViewById(R.id.checkedTextViewb);
checkedTextViewSinglec = (CheckedTextView) this
.findViewById(R.id.checkedTextViewc);
checkedTextViewSingled = (CheckedTextView) this
.findViewById(R.id.checkedTextViewd);
singleCheckedTextViewIdArray.add(checkedTextViewSinglea.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSingleb.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSinglec.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSingled.getId());
OnClickListener checkedTextViewSinglelListenerRef = new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < singleCheckedTextViewIdArray.size(); i++) {
if (singleCheckedTextViewIdArray.get(i).intValue() != ((CheckedTextView) arg0)
.getId()) {
((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray
.get(i))).setChecked(false);
} else {
((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray
.get(i))).setChecked(true);
}
}
}
};
checkedTextViewSinglea
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSingleb
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSinglec
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSingled
.setOnClickListener(checkedTextViewSinglelListenerRef);
getSingleCheckedTextValue.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < singleCheckedTextViewIdArray.size(); i++) {
CheckedTextView eachCheckedTextViewRef = ((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray.get(i)));
if (eachCheckedTextViewRef.isChecked() == true) {
Log.v("单选选中了:", ""
+ eachCheckedTextViewRef.getTag().toString());
}
}
}
});
}
}
CheckedTextView控件
程序初始运行效果如图3.19所示。
将多选控件的状态改成如图3.20所示。
图3.19 初始运行效果
图3.20 更变checked状态后界面
单击上方的Button按钮取出多选CheckedTextView控件的状态值,如图3.21所示。再把单选的状态改成如图3.22所示。
图3.21 第1个按钮按下的效果
图3.22 答案c被选中
图3.23 单选结果打印
在Android技术中实现打勾的checked效果其实还有另外一个控件也可以实现,它就是CheckedTextView控件。
新建名称为android2的Android项目,更改布局文件main.xml的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1" android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout android:padding="10px" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<CheckedTextView android:tag="a1" android:id="@+id/checkedTextView1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView1" />
<CheckedTextView android:tag="a2" android:id="@+id/checkedTextView2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView2" />
<CheckedTextView android:tag="a3" android:id="@+id/checkedTextView3"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView4" />
<CheckedTextView android:tag="a4" android:id="@+id/checkedTextView4"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView5" />
<CheckedTextView android:tag="a5" android:id="@+id/checkedTextView5"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:text="checkedTextView6" />
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<CheckedTextView android:tag="A" android:id="@+id/checkedTextViewa"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewa" />
<CheckedTextView android:tag="B" android:id="@+id/checkedTextViewb"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewb" />
<CheckedTextView android:tag="C" android:id="@+id/checkedTextViewc"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewc" />
<CheckedTextView android:tag="D" android:id="@+id/checkedTextViewd"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:text="checkedTextViewd" />
<Button android:text="Button" android:id="@+id/button2"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
</ScrollView>
由于本示例的控件比较多,为了能全部显示它们,所以用了带滚动条效果的控件。
文件Main.java的代码如下:
public class Main extends Activity {
private CheckedTextView checkedTextViewMul1;
private CheckedTextView checkedTextViewMul2;
private CheckedTextView checkedTextViewMul3;
private CheckedTextView checkedTextViewMul4;
private CheckedTextView checkedTextViewMul5;
private CheckedTextView checkedTextViewSinglea;
private CheckedTextView checkedTextViewSingleb;
private CheckedTextView checkedTextViewSinglec;
private CheckedTextView checkedTextViewSingled;
private Button getMulCheckedTextValue;
private Button getSingleCheckedTextValue;
private ArrayList<Integer> mulCheckedTextViewIdArray = new ArrayList();
private ArrayList<Integer> singleCheckedTextViewIdArray = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getMulCheckedTextValue = (Button) this.findViewById(R.id.button1);
getSingleCheckedTextValue = (Button) this.findViewById(R.id.button2);
checkedTextViewMul1 = (CheckedTextView) this
.findViewById(R.id.checkedTextView1);
checkedTextViewMul1.setChecked(true);
checkedTextViewMul2 = (CheckedTextView) this
.findViewById(R.id.checkedTextView2);
checkedTextViewMul3 = (CheckedTextView) this
.findViewById(R.id.checkedTextView3);
checkedTextViewMul3.setChecked(true);
checkedTextViewMul4 = (CheckedTextView) this
.findViewById(R.id.checkedTextView4);
checkedTextViewMul5 = (CheckedTextView) this
.findViewById(R.id.checkedTextView5);
checkedTextViewMul5.setChecked(true);
mulCheckedTextViewIdArray.add(checkedTextViewMul1.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul2.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul3.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul4.getId());
mulCheckedTextViewIdArray.add(checkedTextViewMul5.getId());
OnClickListener checkedTextViewMulListenerRef = new OnClickListener() {
public void onClick(View arg0) {
((CheckedTextView) arg0).toggle();
}
};
checkedTextViewMul1.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul2.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul3.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul4.setOnClickListener(checkedTextViewMulListenerRef);
checkedTextViewMul5.setOnClickListener(checkedTextViewMulListenerRef);
getMulCheckedTextValue.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < mulCheckedTextViewIdArray.size(); i++) {
CheckedTextView findCheckedTextViewRef = (CheckedTextView) Main.this
.findViewById(mulCheckedTextViewIdArray.get(i));
if (findCheckedTextViewRef.isChecked() == true) {
Log.v("打勾的checkbox值是", ""
+ findCheckedTextViewRef.getTag());
}
}
}
});
checkedTextViewSinglea = (CheckedTextView) this
.findViewById(R.id.checkedTextViewa);
checkedTextViewSingleb = (CheckedTextView) this
.findViewById(R.id.checkedTextViewb);
checkedTextViewSinglec = (CheckedTextView) this
.findViewById(R.id.checkedTextViewc);
checkedTextViewSingled = (CheckedTextView) this
.findViewById(R.id.checkedTextViewd);
singleCheckedTextViewIdArray.add(checkedTextViewSinglea.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSingleb.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSinglec.getId());
singleCheckedTextViewIdArray.add(checkedTextViewSingled.getId());
OnClickListener checkedTextViewSinglelListenerRef = new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < singleCheckedTextViewIdArray.size(); i++) {
if (singleCheckedTextViewIdArray.get(i).intValue() != ((CheckedTextView) arg0)
.getId()) {
((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray
.get(i))).setChecked(false);
} else {
((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray
.get(i))).setChecked(true);
}
}
}
};
checkedTextViewSinglea
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSingleb
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSinglec
.setOnClickListener(checkedTextViewSinglelListenerRef);
checkedTextViewSingled
.setOnClickListener(checkedTextViewSinglelListenerRef);
getSingleCheckedTextValue.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < singleCheckedTextViewIdArray.size(); i++) {
CheckedTextView eachCheckedTextViewRef = ((CheckedTextView) Main.this
.findViewById(singleCheckedTextViewIdArray.get(i)));
if (eachCheckedTextViewRef.isChecked() == true) {
Log.v("单选选中了:", ""
+ eachCheckedTextViewRef.getTag().toString());
}
}
}
});
}
}
CheckedTextView控件
程序初始运行效果如图3.19所示。
将多选控件的状态改成如图3.20所示。
图3.19 初始运行效果
图3.20 更变checked状态后界面
单击上方的Button按钮取出多选CheckedTextView控件的状态值,如图3.21所示。再把单选的状态改成如图3.22所示。
图3.21 第1个按钮按下的效果
图3.22 答案c被选中
图3.23 单选结果打印
相关文章推荐
- Android控件TextView学习一
- android学习之LayoutInflater的用法,在myAdapter getView()里将多个TextView组件压缩成一个View控件,并在listView里显示
- Android学习系列之控件 AutoCompleteTextView邮箱后缀自动补全
- Android学习系列之控件 AutoCompleteTextView邮箱后缀自动补全
- Android之TextView控件的学习
- [Android新手学习笔记11]-UI控件之TextView
- android 控件学习之Textview属性总结
- Android学习 11 ->控件之TextView和EditText
- Android学习(一)TextView,ImageView,Button,EditText,控件
- Android学习_01——AutoCompleteTextView控件和MultiAutoCompleteTextView控件的应用
- Android学习-常见的UI控件 TextView、EditText和ImageView
- android---textview控件学习笔记之显示表情图片和文本(二)
- Android之TextView控件学习
- 1.Android之TextView控件学习笔记
- Android控件之TextView学习记录
- Android控件学习之TextView:设置中划线,下划线效果
- Android基础知识之控件系列(4)——CheckedTextView、Chronometer、DigitalClock类
- Android控件TextView学习一
- Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用
- android常用控件学习之TextView和EditView