android 实现调查问卷-单选-多选

本文介绍如何在Android中实现调查问卷功能,包括单选和多选题。通过动态加载布局,根据问题数量生成不同的答题界面。文章提到了三层布局结构,并提供了实体类的创建以及activity_main.xml和quesition_layout.xml两个布局文件的使用。
摘要由CSDN通过智能技术生成

很久没写东西了,今天来总结下有关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
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值