很久没写东西了,今天来总结下有关android调查问卷的需求实现。
转载请加地址:http://blog.csdn.net/jing110fei/article/details/46618229
先上效果图
个人分析,最好是用动态布局加载来实现,好了,说思路,将这整体分为3块
最外面这个布局里面,根据第二层问题的数量来动态生成布局,加入在第一层布局里面,
然后再根据问题下答案的数量来动态生成布局,加入第二层布局里面,思路这么透彻,想想还有些小激动呢。
先建造三个实体类
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;
//题目
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;
}
}
建造这三个实体类的目的是为了在做demo的时候直接通过假数据来尽可能的贴近项目,使demo完成后能尽快的移植进项目。
下面来看看布局,总工用到了3个布局。
首先是activity_main.xml
<ScrollView 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="#e6e4e