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
- Android 完整漂亮问卷、试卷 -- 支持单选、判断、不定项
- android 实现调查问卷-单选-多选
- android 实现调查问卷-单选-多选
- 调查问卷(单选、多选)
- 不定项参数
- [不定项选择题]
- 不定项选择题
- HTML+CSS基础 form-input-radio创建一个单选按钮(不漂亮的)
- 浏览器自动填写问卷或者单选/表单等
- 单选按钮技术演示---调查问卷为例
- 我的JAVA不定项
- Android自定义RadioGroup实现单选完整示例
- Android自定义RadioGroup实现单选完整示例
- Android调查问卷
- Android开发不完整规范
- HTML+CSS基础 form-input-radio创建多组并且每组有多个的单选按钮(不漂亮的)
- android开发小技巧(4)漂亮的单选按钮(非radiobutton)
- 投票问卷结果漂亮的横向显示,jquery简单实现。
- Go语言学习笔记 --- slice切片
- python爬虫04
- 第二天:勇于踏出去
- Poj 1502 MPI Maelstrom (Dijkstra
- node.js 探索之路(概念进阶)
- Android 完整漂亮问卷、试卷 -- 支持单选、判断、不定项
- 二叉树的存储和遍历
- 561. Array Partition I
- 娜娜梦游仙境系列——多民族王国
- 图论--最小生成树总结(Prim&&Kruskal)
- 转 Java-Swing嵌入浏览器(一) 今天要说的额是浏览器的第一个版本是用DJnative-swt和swt包开发的调用本地浏览器和webkit浏览器的示例 这是我的工程目录【源码见最后】: i
- find查找文件忽略某些目录
- 算法学习笔记--2. Selection sort & Fibonacci sequence
- before和:after