Android 移动开发之调查问卷


作业描述:参考下列页面,自行设计并实现一个问卷调查应用(内容自定),至少需要用到TextView、EditText、Button、CheckBox、RadioButton、两个Spinner组件(能够进行联动),在问卷内容填写完后能够弹出一个Dialog对话框,显示用户填写的信息,并在本文档下方给出运行截图。(同时提交代码) 注意:第一个页面上设置按钮点击和未点击时显示不同的背景。 

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_xml


步骤:

1.设计图一主页面MainActivity对应布局activity_main,主要涉及4个TextView控件,和两个Button控件,根据图一实现布局

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_xml_02

2.根据图一设置字体颜色和大小(主要是看设计属性)

android:text="关于Android使用情况的调查"
        android:textSize="30dp"
        android:textColor="@color/colorAccent"

3.设置两个按钮的效果(点击变色色,以及如何设置圆角)

   首先在drawable创建点击时queren和未点击时的效果quxiao,selecter中设置如何转换效果

  

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_移动开发_03

   下图是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控件

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_xml_04

6.设置选择下拉列表(注第二个下拉列表要和第一个相匹配),创建其监听器,获取选中内容

findViewByMe)下载方法:file->settings->plugins->marketplace搜索

 首先,在value中创建array.xml,里面写两个下拉列表要用到的内容,如图

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_移动开发_05

 然后用entries属性给第一个下拉列表设值

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_android_06

由于第二个下拉列表要和第一个联动,下面贴出代码

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

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_xml_07

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

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_控件_08

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_xml_09

 

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

 

测试即最后结果:

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_android_10

如何用Android studio制作一个调查问卷软件 android制作一个问卷页面_移动开发_11

 


总结:本次作业涉及到了很多控件使用,还有监听器的使用,在此记笔记方便以后复习查看。

有下拉框的监听器使用,适配器的使用,单选框监听器,复选框监听器,星型拉条的使用及其设置。