Android之Listview(item为单选题)自定义adapter,像考试时前面的10几道单选题的实现

本文介绍如何使用自定义Adapter在Android中创建一个Listview,每个item为一道单选题,包括题干和四个选项。通过Adapter展示了加载题目、获取用户选择答案的功能。示例中,题目数据可以从本地或服务器获取,并提供了用户答题和提交答案的流程。
摘要由CSDN通过智能技术生成

用于展现重复性的东西,Listview比较好用,看了别人的自定义Adapter(item是EditText,能够很好地获取到每一个item的EditText值)。又由于在做项目的需要,故特制了一个item包含RadioGroup的Listview的自定义Adapter。
主要功能:
1.将任意数目的单选题(题干和4个选项)展现在界面上;
2.每一题都选择后,提交,可以讲每一题的答案获取到
涉及到两个entity:

public class TopicItem implements Serializable {
   
    private String questionId;//题目id
    private String question;//题干
    private String answerId;
    private String userAnswerId; //选择的答案选项
    private List<OptionItem> optionList;

    public String getQuestionId() {
        return questionId;
    }
    public void setQuestionId(String questionId) {
        this.questionId = questionId;
    }
    public String getQuestion() {
        return question;
    }
    public void setQuestion(String question) {
        this.question = question;
    }
    public String getAnswerId() {
        return answerId;
    }
    public void setAnswerId(String answerId) {
        this.answerId = answerId;
    }
    public String getUserAnswerId() {
        return userAnswerId;
    }
    public void setUserAnswerId(String userAnswerId) {
        this.userAnswerId = userAnswerId;
    }
    public List<OptionItem> getOptionList() {
        return optionList;
    }
    public void setOptionList(List<OptionItem> optionList) {
        this.optionList = optionList;
    }
}
public class OptionItem implements Serializable {
   
    private String answerOption;//选项序号
    private String answer;//选项文字
    public String getAnswerOption() {
        return answerOption;
    }
    public void setAnswerOption(String answerOption) {
        this.answerOption = answerOption;
    }
    public String getAnswer() {
        return answer;
    }
    public void setAnswer(String anwer) {
        this.answer = anwer;
    }
}

自定义的adapter:

public class TopicAdapter extends BaseAdapter {
    private static final String TAG = "TopicAdapter" ;
    String KEY = "list_topic_item";

    private LayoutInflater mInflater;
    private Context context;

    private List<Map<String, TopicItem>> mData;



    public TopicAdapter(Context context, List<Map<String, TopicItem>> data) {
        mData = data;
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.context = context;
        init();
    }

    private void init() {
        mData.clear();
    }

    @Override
    public int getCount() {
        int count = mData == null ? 0 : mData.size();
        return count ;
    }

    @Override
    public Object getItem(int position) {
        /*Object obj =  records != null && records.size() > position ? records.get(position) : null;
        return  obj;*/
        return null;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值