Android 移动开发之调查问卷
作业描述:参考下列页面,自行设计并实现一个问卷调查应用(内容自定),至少需要用到TextView、EditText、Button、CheckBox、RadioButton、两个Spinner组件(能够进行联动),在问卷内容填写完后能够弹出一个Dialog对话框,显示用户填写的信息,并在本文档下方给出运行截图。(同时提交代码) 注意:第一个页面上设置按钮点击和未点击时显示不同的背景。
步骤:
1.设计图一主页面MainActivity对应布局activity_main,主要涉及4个TextView控件,和两个Button控件,根据图一实现布局
2.根据图一设置字体颜色和大小(主要是看设计属性)
android:text="关于Android使用情况的调查"
android:textSize="30dp"
android:textColor="@color/colorAccent"
3.设置两个按钮的效果(点击变色色,以及如何设置圆角)
首先在drawable创建点击时queren和未点击时的效果quxiao,selecter中设置如何转换效果
下图是queren.xml中代码。quxiao.xml一样,除了颜色不同(代码略)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">//设置形状
<corners android:radius="20dp"></corners>//设置圆角
<solid android:color="@color/colorGreen"></solid>//设置填充
</shape>
下图selecter.xml代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">//设置选择
<item android:state_pressed="true" android:drawable="@drawable/queren"/>//第一个属性是设置是否按压,对于编辑框要用state_focused(刚开始我用的这个,对按钮没有效果)
<item android:state_pressed="false" android:drawable="@drawable/quxiao"/>
</selector>
最后在开始和取消按钮的background属性运用selecter值
4.给开始按钮添加Onclick属性,在里面实现页面跳转(使用的显示Intent或者隐式Intent//我使用的是显示,隐式需要用setAction,注意不要忘了在AndroidManifest里注册)
public void tosecond(View view) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
5.设计第二个Activity页面activity_second,添加相应的class文件Second,按照图二显示布局,分别用到5个TextView控件、两个Spinner控件、4个RadioButton控件(注意和RadioGroup联用)、10个CheckBox控件、1个RatingBar控件、1个EditText控件、1个Button控件
6.设置选择下拉列表(注第二个下拉列表要和第一个相匹配),创建其监听器,获取选中内容
findViewByMe)下载方法:file->settings->plugins->marketplace搜索
首先,在value中创建array.xml,里面写两个下拉列表要用到的内容,如图
然后用entries属性给第一个下拉列表设值
由于第二个下拉列表要和第一个联动,下面贴出代码
final int[]lists={R.array.one,R.array.jiangsu,R.array.shanghai,R.array.sichuan,R.array.shanxi,R.array.guizhou,R.array.beijing ,R.array.end};
//由于没有setentries方法,所以只能用适配器来设置想要显示的样式
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(SecondActivity.this,lists[position],android.R.layout.simple_spinner_dropdown_item);//先用链表lists设置下标对应的内容,在利用第一个列表对应的位置position来匹值,最后一个属性是系统定义好的显示样式
spinner2.setAdapter(adapter);//设置适配器
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
7.设置单选按钮监听器获取单选按钮选中的内容
话不多说,贴代码
RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(android.widget.RadioGroup group, int checkedId) {
if(checkedId==R.id.radioButton){//判断选择的id
system=radioButton.getText().toString();//获取相应选择的类容
}
else if(checkedId==R.id.radioButton2){
system=radioButton2.getText().toString();
}
else if(checkedId==R.id.radioButton3){
system=radioButton3.getText().toString();
}
else{
system=radioButton4.getText().toString();
}
}
});
8.设置复选框监听器获取复选框选中的内容
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String motion=buttonView.getText().toString();
if(isChecked){
if(!hobbys.contains(motion)){
hobbys=hobbys+motion;
}
else{
if(hobbys.contains(motion)){
hobbys=hobbys.replace(motion,"");
}
}
}
}
9.获取星型条的分数
10.获取多行文本框的内容
11.给提交按钮添加点击事件,在点击事件中设置对话框,并把上面获取到的内容按照图三输出
public void onBackPresssed(View view) {
AlertDialog dialog;
AlertDialog.Builder builder=new AlertDialog.Builder(this).setTitle("问卷调查")
.setMessage("您提交的信息如下:\n"+"所在的省市: "+spinner.getSelectedItem()+","+spinner2.getSelectedItem()+"\n"+
"使用最长的手机系统:"+system+"\n"+"最常用的APP:"+hobbys+"\n"+"对android整体性能的打分:"+ratingBar.getRating()+"分/5分"+
"\n"+"你希望设计的APP的功能:"+editText.getText())
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
SecondActivity.this.finish();
}
});
dialog=builder.create();
dialog.show();
}
测试即最后结果:
总结:本次作业涉及到了很多控件使用,还有监听器的使用,在此记笔记方便以后复习查看。
有下拉框的监听器使用,适配器的使用,单选框监听器,复选框监听器,星型拉条的使用及其设置。