Android 完整漂亮问卷、试卷 -- 支持单选、判断、不定项

来源:互联网 发布:如何将照片导入mac 编辑:程序博客网 时间:2024/05/20 22:04

项目中要做一个考题的问卷,网上博客完整、又漂亮写出来的比较少。

  • 灰常感谢这个朋友给的思路,参考了:http://blog.csdn.net/jing110fei/article/details/46618229
  • 上效果图

这里写图片描述

里面的注释已经很详细了,不做过多解析了

  • 有点麻烦的就是,1:要拿对每个数据,注意里面的i j z等角标; 2:将每个答案拼好成一个json数据,多个答案就会麻烦点。

  • Activity代码

import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import com.example.administrator.testdemo.model.Answer;import com.example.administrator.testdemo.model.Page;import com.example.administrator.testdemo.model.Quesition;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;public class MainActivity extends Activity {    // 数据源 假数据    private String resultJosn = "{\"result\":\"1\",\"type\":\"1\",\"data\":[{\"type\":\"3\",\"eid\":\"11\",\"problem\":\"1、 什么样的团队更容易获得成功?\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"团结\",\"isChecked\":\"0\"},{\"option\":\"精英\",\"isChecked\":\"0\"},{\"option\":\"聪明\",\"isChecked\":\"0\"},{\"option\":\"领导\",\"isChecked\":\"0\"}]},{\"type\":\"3\",\"eid\":\"12\",\"problem\":\"2、 学习态度\",\"trueanswer\":\"C\",\"optionData\":[{\"option\":\"好\",\"isChecked\":\"0\"},{\"option\":\"一般\",\"isChecked\":\"0\"},{\"option\":\"很好\",\"isChecked\":\"0\"},{\"option\":\"差\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"13\",\"problem\":\"3、 这件事真的是对的吗\",\"trueanswer\":\"A\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"14\",\"problem\":\"4、 这个道理真的对吗\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"1\",\"eid\":\"15\",\"problem\":\"5、 老师姓什么?\",\"trueanswer\":\"D\",\"optionData\":[{\"option\":\"赵\",\"isChecked\":\"0\"},{\"option\":\"钱\",\"isChecked\":\"0\"},{\"option\":\"孙\",\"isChecked\":\"0\"},{\"option\":\"李\",\"isChecked\":\"0\"}]},{\"type\":\"1\",\"eid\":\"16\",\"problem\":\"6、 这个要多上钱\",\"trueanswer\":\"C\",\"optionData\":[{\"option\":\"100\",\"isChecked\":\"0\"},{\"option\":\"200\",\"isChecked\":\"0\"},{\"option\":\"300\",\"isChecked\":\"0\"},{\"option\":\"400\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"17\",\"problem\":\"7、 我不用学这个课程也能成功\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"18\",\"problem\":\"8、 学习人数已经由300人了\",\"trueanswer\":\"A\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"1\",\"eid\":\"19\",\"problem\":\"9、 该课程要上多久\",\"trueanswer\":\"A\",\"optionData\":[{\"option\":\"10分钟\",\"isChecked\":\"0\"},{\"option\":\"20分钟\",\"isChecked\":\"0\"},{\"option\":\"30分钟\",\"isChecked\":\"0\"},{\"option\":\"40分钟\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"20\",\"problem\":\"10、 学过这个课程的都成功了\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]}]}\n";//    private String resultJosn = "{\"result\":\"1\",\"type\":\"1\",\"data\":[{\"type\":\"2\",\"eid\":\"6\",\"problem\":\"1、 真不拿\",\"trueanswer\":\"A\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"7\",\"problem\":\"2、 这个怎么做\",\"trueanswer\":\"A\",\"optionData\":[{\"option\":\"1\",\"isChecked\":\"1\"},{\"option\":\"2\",\"isChecked\":\"0\"},{\"option\":\"3\",\"isChecked\":\"0\"},{\"option\":\"4\",\"isChecked\":\"0\"}]},{\"type\":\"2\",\"eid\":\"8\",\"problem\":\"3、 wgergwe\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]},{\"type\":\"3\",\"eid\":\"9\",\"problem\":\"4、 szdfasdf\",\"trueanswer\":\"C\",\"optionData\":[{\"option\":\"112\",\"isChecked\":\"0\"},{\"option\":\"22\",\"isChecked\":\"0\"},{\"option\":\"23\",\"isChecked\":\"0\"},{\"option\":\"43\",\"isChecked\":\"1\"}]},{\"type\":\"2\",\"eid\":\"10\",\"problem\":\"5、 rqwerqw\",\"trueanswer\":\"B\",\"optionData\":[{\"option\":\"正确\",\"isChecked\":\"0\"},{\"option\":\"错误\",\"isChecked\":\"0\"}]}]}";    private LinearLayout test_layout;    private Page the_page;    // 答案列表    private ArrayList<Answer> the_answer_list;    // 问题列表    private ArrayList<Quesition> the_quesition_list;    // 问题所在的View    private View que_view;    // 答案所在的View    private View ans_view;    private LayoutInflater xInflater;    private Page page;    // 下面这两个list是为了实现点击的时候改变图片,因为单选多选时情况不一样,为了方便控制    // 存每个问题下的TextView    private ArrayList<ArrayList<TextView>> textlist = new ArrayList<ArrayList<TextView>>();    // 存每个答案的TextView    private ArrayList<TextView> textlist2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);        // 初始化数据        initDate();        // 提交按钮        TextView button = (TextView) findViewById(R.id.tv_commit);        button.setOnClickListener(new submitOnClickListener(page));    }    private void initDate() {        ArrayList<Quesition> quesitionsList = null;        try {            quesitionsList = new ArrayList<>();//问题列表            JSONObject resultJson = new JSONObject(resultJosn);            JSONArray arrayJson = resultJson.optJSONArray("data");            for (int i=0;i<arrayJson.length();i++){                JSONObject subObject = arrayJson.getJSONObject(i);                ArrayList<Answer> answers = new ArrayList<>();                JSONArray arrayAnswerJson = subObject.optJSONArray("optionData");//问题的答案                for (int j=0; j< arrayAnswerJson.length(); j++) {                    JSONObject answerObject = arrayAnswerJson.getJSONObject(j);                    Answer a_answer = new Answer();                    a_answer.setAnswerId(""+j);                    a_answer.setAnswer_content(answerObject.getString("option"));                    a_answer.setAns_state(Integer.parseInt(answerObject.getString("isChecked")));                    answers.add(a_answer);                }                Quesition q_quesition = new Quesition();                q_quesition.setQuesitionId(subObject.getString("eid"));//问题的id                q_quesition.setType(subObject.getString("type"));//类型,1判断 2单选 3不定项                q_quesition.setContent(subObject.getString("problem"));//问题                q_quesition.setAnswers(answers);                q_quesition.setQue_state(0);                quesitionsList.add(q_quesition);            }        } catch (JSONException e) {            e.printStackTrace();        }        page = new Page();        page.setPageId("1");        page.setStatus("0");        page.setTitle("精英问卷");        page.setQuesitions(quesitionsList);        // 加载布局        initView(page);    }    private void initView(Page page) {        // TODO Auto-generated method stub        // 这是要把问题的动态布局加入的布局        test_layout = (LinearLayout) findViewById(R.id.lly_test);        TextView page_txt = (TextView) findViewById(R.id.txt_title);        page_txt.setText(page.getTitle());        // 获得问题即第二层的数据        the_quesition_list = page.getQuesitions();        // 根据第二层问题的多少,来动态加载布局        for (int i = 0; i < the_quesition_list.size(); i++) {            que_view = xInflater.inflate(R.layout.quesition_layout, null);            ImageView iv_type = (ImageView) que_view.findViewById(R.id.iv_type);            TextView txt_que = (TextView) que_view.findViewById(R.id.txt_question_item);            // 这是第三层布局要加入的地方            LinearLayout add_layout = (LinearLayout) que_view.findViewById(R.id.lly_answer);            View v_line = (View) que_view.findViewById(R.id.v_line);            if(i == 0){//第一道题目的分隔条不用显示                v_line.setVisibility(View.GONE);            }            //类型:1选择题;2判断题 3不定项            if (the_quesition_list.get(i).getType().equals("1")) {                iv_type.setImageResource(R.mipmap.single_menu);            } else if (the_quesition_list.get(i).getType().equals("2")){                iv_type.setImageResource(R.mipmap.judge_menu);            } else if (the_quesition_list.get(i).getType().equals("3")){                iv_type.setImageResource(R.mipmap.more_menu);            }            txt_que.setText(the_quesition_list.get(i).getContent());//设置问题题目            // 获得答案即第三层数据            the_answer_list = the_quesition_list.get(i).getAnswers();            textlist2 = new ArrayList<>();            for (int j = 0; j < the_answer_list.size(); j++) {                ans_view = xInflater.inflate(R.layout.answer_layout, null);                TextView txt_ans = (TextView) ans_view.findViewById(R.id.txt_answer_item);                TextView tv_menu = (TextView) ans_view.findViewById(R.id.tv_menu);                //自己手动为每个问题的选项加上相应的ABCD...                if (j==0){                    tv_menu.setText("A");                }else if (j==1){                    tv_menu.setText("B");                }else if (j==2){                    tv_menu.setText("C");                }else if (j==3){                    tv_menu.setText("D");                }else if (j==4){                    tv_menu.setText("E");                }else if (j==5){                    tv_menu.setText("F");                }else if (j==6){                    tv_menu.setText("G");                }                // 判断哪个答案已选                if (the_answer_list.get(j).getAns_state() == 1) {//                    Toast.makeText(getApplicationContext(),"1",Toast.LENGTH_SHORT).show();                    the_quesition_list.get(i).setQue_state(1);                    tv_menu.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_red));                    tv_menu.setTextColor(getResources().getColor(R.color.colorWhite));                } else {//                    Toast.makeText(getApplicationContext(),"0",Toast.LENGTH_SHORT).show();                    tv_menu.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_white));                    tv_menu.setTextColor(getResources().getColor(R.color.colorblack));                }                textlist2.add(tv_menu);                txt_ans.setText(the_answer_list.get(j).getAnswer_content());                LinearLayout lly_answer_size = (LinearLayout) ans_view.findViewById(R.id.lly_answer_size);                if (j%2!=0){//为了美观了,将答案的背景隔开一下                    lly_answer_size.setBackgroundColor(getResources().getColor(R.color.colorWhite));                }                //设置点击事件                lly_answer_size .setOnClickListener(new answerItemOnClickListener(i, j, the_answer_list, txt_ans));                add_layout.addView(ans_view);            }            textlist.add(textlist2);            test_layout.addView(que_view);//将生成的问题都添加到一个布局文件中        }    }    /**     * 试卷各个选项的点击事件     */    class answerItemOnClickListener implements View.OnClickListener {        private int i;        private int j;        private TextView txt;        private ArrayList<Answer> the_answer_lists;        public answerItemOnClickListener(int i, int j, ArrayList<Answer> the_answer_list, TextView text) {            this.i = i;            this.j = j;            this.the_answer_lists = the_answer_list;            this.txt = text;        }        // 实现点击选项后改变选中状态以及对应图片        @Override        public void onClick(View arg0) {            // TODO Auto-generated method stub            // 判断当前问题是单选还是多选            if (the_quesition_list.get(i).getType().equals("3")) {//1选择题;2判断题 3不定项                for(int z=0;z<the_answer_list.size();z++){                    if(the_answer_list.get(z).getAns_state()==1){                        the_quesition_list.get(i).setQue_state(1);//                        return;                    }else{                        the_quesition_list.get(i).setQue_state(0);                    }                }                if (the_answer_lists.get(j).getAns_state() == 0) {//                    Toast.makeText(getApplication(), "0", Toast.LENGTH_SHORT).show();                    textlist.get(i).get(j).setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_red));                    textlist.get(i).get(j).setTextColor(getResources().getColor(R.color.colorWhite));                    the_answer_lists.get(j).setAns_state(1);//注意一下这些相应的角标是用i 、j还是z。                    the_quesition_list.get(i).setQue_state(1);                } else {//                    Toast.makeText(getApplication(), "1", Toast.LENGTH_SHORT).show();                    textlist.get(i).get(j).setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_white));                    textlist.get(i).get(j).setTextColor(getResources().getColor(R.color.colorblack));                    the_answer_lists.get(j).setAns_state(0);                    the_quesition_list.get(i).setQue_state(0);                }            } else {// 单选                for (int z = 0; z < the_answer_lists.size(); z++) {                    if (z == j) {//                        Toast.makeText(getApplication(), "3", Toast.LENGTH_SHORT).show();                        // 如果当前未被选中                        textlist.get(i).get(j).setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_red));                        textlist.get(i).get(j).setTextColor(getResources().getColor(R.color.colorWhite));                        the_answer_lists.get(z).setAns_state(1);                        the_quesition_list.get(i).setQue_state(1);                    } else {//                        Toast.makeText(getApplication(), "4", Toast.LENGTH_SHORT).show();                        the_answer_lists.get(z).setAns_state(0);                        the_quesition_list.get(i).setQue_state(1);                        textlist.get(i).get(z).setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_white));                        textlist.get(i).get(z).setTextColor(getResources().getColor(R.color.colorblack));                    }                }            }        }    }    /**     * 提交按钮事件处理     */    class submitOnClickListener implements View.OnClickListener {        private Page page;        public submitOnClickListener(Page page) {            this.page = page;        }        @Override        public void onClick(View arg0) {            // TODO Auto-generated method stub            // 判断是否答完题            boolean isState = true;            // 最终要的json数组            JSONArray jsonArray = new JSONArray();            // 点击提交的时候,先判断状态,如果有未答完的就提示,如果没有再把每条答案提交(包含问卷ID 问题ID 及答案ID)            // 注:不用管是否是一个问题的答案,就以答案的个数为准来提交上述格式的数据            for (int i = 0; i < the_quesition_list.size(); i++) {                the_answer_list = the_quesition_list.get(i).getAnswers();                // 判断是否有题没答完                if (the_quesition_list.get(i).getQue_state() == 0) {                    Toast.makeText(getApplicationContext(), "您第" + (i + 1) + "题没有答完", Toast.LENGTH_LONG).show();                    jsonArray = null;                    isState = false;                    return;                } else {                    JSONObject json = new JSONObject();                    String answers2 = "";                    String answers = "";                    for (int j = 0; j < the_answer_list.size(); j++) {                        if (the_answer_list.get(j).getAns_state() == 1) {                            try {                                answers2 = the_quesition_list.get(i).getQuesitionId();                                if (answers.length()==0){                                    answers = answers +j;                                }else {                                    answers = answers +"-"+ j;                                }                                //===为不定项拼接答案================================                                if (answers.contains("0")) {                                    answers = answers.replace("0", "A");                                }                                if (answers.contains("1")) {                                    answers = answers.replace("1", "B");                                }                                if (answers.contains("2")) {                                    answers = answers.replace("2", "C");                                }                                if (answers.contains("3")) {                                    answers = answers.replace("3", "D");                                }                                if (answers.contains("4")) {                                    answers = answers.replace("4", "E");                                }                                if (answers.contains("5")) {                                    answers = answers.replace("5", "F");                                }                            } catch (Exception e) {                                e.printStackTrace();                            }                        }                    }                    try {                        json.put("answer", answers);                        json.put("eid", answers2);//                        Toast.makeText(getApplicationContext(), json + "", Toast.LENGTH_SHORT).show();                        jsonArray.put(json);                    } catch (JSONException e) {                        e.printStackTrace();                    }                }            }            Log.d("jsonArray-->", "" + jsonArray);            Toast.makeText(getApplicationContext(), "提交的数据:" + jsonArray, Toast.LENGTH_SHORT).show();        }    }}

  • activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/colorWhite"    android:orientation="vertical">    <TextView        android:id="@+id/txt_title"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:background="@color/colorPrimaryDark"        android:gravity="center"        android:padding="10dp"        android:text="调查问卷"        android:textColor="@color/colorWhite"        android:textSize="18sp" />    <View        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:background="@color/colorGray" />    <ScrollView        android:layout_width="match_parent"        android:layout_height="0dp"        android:scrollbars="none"        android:background="@color/colorLightGrey"        android:layout_weight="1">        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="vertical">            <TextView                android:id="@+id/tv_class_title"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_gravity="center_vertical"                android:background="@color/colorWhite"                android:gravity="center_vertical"                android:paddingTop="10dp"                android:paddingLeft="15dp"                android:text="闯关吧,少年"                android:textColor="@color/colorblack"                android:textSize="17sp" />            <TextView                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_gravity="center_vertical"                android:paddingTop="5dp"                android:paddingLeft="15dp"                android:paddingBottom="10dp"                android:background="@android:color/white"                android:gravity="center_vertical"                android:text="(共10题,总分100分)"                android:textColor="@color/m_silver"                android:textSize="12sp" />            <LinearLayout                android:id="@+id/lly_test"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="vertical">            </LinearLayout>            <View                android:layout_width="match_parent"                android:layout_height="35dp"                android:background="@color/white2"/>        </LinearLayout>    </ScrollView>    <View        android:layout_width="match_parent"        android:layout_height="0.3dp"        android:background="@color/m_silver" />    <TextView        android:id="@+id/tv_commit"        android:layout_width="192dp"        android:layout_height="40dp"        android:layout_gravity="center"        android:layout_marginBottom="15dp"        android:layout_marginTop="15dp"        android:background="@color/colorRed"        android:gravity="center"        android:padding="10dp"        android:text="提交"        android:textColor="@android:color/white"        android:textSize="18sp" /></LinearLayout>-------------------------------------------- 每个问题的布局文件:quesition_layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@color/white2"    android:orientation="vertical">    <View        android:id="@+id/v_line"        android:layout_width="match_parent"        android:layout_height="35dp"        android:background="@color/white2"/>    <View        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:background="@color/m_silver"/>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:paddingTop="15dp"        android:paddingBottom="20dp"        android:background="@color/colorWhite"        android:gravity="center_vertical"        android:orientation="horizontal">        <ImageView            android:id="@+id/iv_type"            android:layout_width="47dp"            android:layout_height="17dp"            android:scaleType="fitXY"            android:src="@mipmap/single_menu" />        <TextView            android:id="@+id/txt_question_item"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:layout_marginRight="10dp"            android:text="题目"            android:textColor="@color/m_charcoal_grey"            android:textSize="17sp" />    </LinearLayout>    <LinearLayout        android:id="@+id/lly_answer"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"/></LinearLayout>

  • 每个答案的布局文件:answer_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="38dp"    android:orientation="vertical">    <LinearLayout        android:id="@+id/lly_answer_size"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:gravity="center_vertical"        android:paddingLeft="40dp"        android:orientation="horizontal">        <TextView            android:id="@+id/tv_menu"            android:layout_width="22dp"            android:layout_height="22dp"            android:layout_gravity="center_vertical"            android:gravity="center"            android:background="@drawable/shape_white"            android:textColor="@color/m_item_text"            android:layout_margin="10dp"            android:padding="1dp"            android:text="A"            android:textSize="12sp" />        <TextView            android:id="@+id/txt_answer_item"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:textColor="@color/m_item_text"            android:textSize="15sp" />    </LinearLayout></LinearLayout>

  • color.xml文件
<?xml version="1.0" encoding="utf-8"?><resources>    <color name="colorPrimary">#3F51B5</color>    <color name="colorPrimaryDark">#303F9F</color>    <color name="colorAccent">#FF4081</color>    <color name="colorWhite">#ffffff</color>    <color name="white2">#f5f3f3</color>    <color name="colorRed">#ff0000</color>    <color name="colorGray">#666666</color>    <color name="colorblack">#000000</color>    <color name="colorLightGrey">#eeeeee</color>    <color name="colorTransparent">#00000000</color>    <color name="m_charcoal_grey">#323233</color><!--深灰色-->    <color name="m_steel">#7d7d80</color><!--灰色-->    <color name="m_silver">#c8c8cc</color><!--浅灰色-->    <color name="m_pale_grey">#f2f2f7</color><!--淡灰色-->    <color name="m_warm_grey">#777777</color>    <color name="m_item_text">#535353</color></resources>

  • 三个model类Page、Quesition、Answer
/** * 试卷 */public class Page {    //问卷id    private String pageId;    //问卷状态    private String status;    //问卷主题    private String title;    //题目    private ArrayList<Quesition> quesitions;    public ArrayList<Quesition> getQuesitions() {        return quesitions;    }    public void setQuesitions(ArrayList<Quesition> quesitions) {        this.quesitions = quesitions;    }    public String getPageId() {        return pageId;    }    public void setPageId(String pageId) {        this.pageId = pageId;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }}
/** * 问题类 */public class Quesition {    //题目id    private String quesitionId;    //单选多选标识    private String type;//0 单选 1 多选    //题目    private String content;    //选项    private ArrayList<Answer> answers;    //是否解答    private int que_state;    public int getQue_state() {        return que_state;    }    public void setQue_state(int que_state) {        this.que_state = que_state;    }    public String getQuesitionId() {        return quesitionId;    }    public void setQuesitionId(String quesitionId) {        this.quesitionId = quesitionId;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    public ArrayList<Answer> getAnswers() {        return answers;    }    public void setAnswers(ArrayList<Answer> answers) {        this.answers = answers;    }}
/** * 答案类 */public class Answer {    //答案id    private String answerId;    //答案主体    private String answer_content;    //答案是否被解答    private int ans_state;    public int getAns_state() {        return ans_state;    }    public void setAns_state(int ans_state) {        this.ans_state = ans_state;    }    public String getAnswerId() {        return answerId;    }    public void setAnswerId(String answerId) {        this.answerId = answerId;    }    public String getAnswer_content() {        return answer_content;    }    public void setAnswer_content(String answer_content) {        this.answer_content = answer_content;    }}

两个圆的问件:
shape_red.xml(红圆)
<?xml version="1.0" encoding="UTF-8"?><shape    xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval"    android:useLevel="false" >    <solid android:color="@color/colorRed" />    <solid        android:color="@color/colorRed" />    <stroke        android:width="1dp"        android:color="@color/colorRed" /></shape>
  • shape_white.xml(白圆)
<?xml version="1.0" encoding="UTF-8"?><shape  xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval"    android:useLevel="false" >    <solid android:color="@color/colorWhite" />    <stroke        android:width="1dp"        android:color="@color/colorLightGrey" /></shape>

  • 以上就是全部代码。

  • 源码下载地址:http://download.csdn.net/detail/qq_32519693/9924085

不过这样的做法,从性能上来说是不太好。因为每次都是将每个问题的信息动态地添加进去,比较消耗性能。由于现在项目时间紧任务中暂时这样来,如果其他朋友还有更好实现方式,请分享一下。

阅读全文
1 0
原创粉丝点击