ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android RadioGroup动态添加RadioButton

2020-02-22 13:05:05  阅读:731  来源: 互联网

标签:public RadioButton RadioGroup qst import Android getOptions android view


import android.app.AppComponentFactory;
import android.content.Context;
import android.text.Html;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.fenbitou.kaoyanzhijia.combiz.utils.AppUtil;
import com.fenbitou.kaoyanzhijia.examination.R;
import com.fenbitou.kaoyanzhijia.examination.data.question.QuestionBean;


/**
 * author : liguangliang
 * date : 2020-01-26 13:57
 * description :单选题自定义view
 */
public class SingleChoiseView extends LinearLayout {

    private static final int ID_INIT=0xF0;

    private final RadioGroup rgAnswer;
    private final TextView tvQuestion;
    private OnAnswerSelectedListener mListener;

    public SingleChoiseView(Context context, AttributeSet attrs) {
        super(context, attrs);
        View view = LayoutInflater.from(context).inflate(R.layout.exam_view_choice_view, this);
        rgAnswer = view.findViewById(R.id.rg_answer);
        tvQuestion = view.findViewById(R.id.tv_question);

    }

    public void updateQuestionInfo(QuestionBean qst){

        if(qst!=null){
            tvQuestion.setText(Html.fromHtml(getContext().getResources().getString(R.string.exam_question_content_score,qst.getQstContent(),
                    AppUtil.formatDouble(qst.getScore()))));
            if(qst.getOptions()!=null && !qst.getOptions().isEmpty()){

                for (int i = 0; i < qst.getOptions().size(); i++) {
                    RadioButton button = LayoutInflater.from(getContext())
                            .inflate(R.layout.exam_view_single_choice, rgAnswer, false)
                            .findViewById(R.id.rb_answer);
                    button.setText(String.format("%s  %s",qst.getOptions().get(i).getOptOrder(),qst.getOptions().get(i).getOptContent()));
                    button.setId(ID_INIT+i);
                    rgAnswer.addView(button, i);
                    rgAnswer.setOnCheckedChangeListener((radioGroup, i1) -> {
                        Log.e("TAG", "onCheckedChanged: "+ i1);
                        mListener.onAnswerSelected(i1 ^ ID_INIT);
                    });
                }
            }

        }

    }


    public void setOnAnswerSelectedListener(OnAnswerSelectedListener mListener) {
        this.mListener = mListener;
    }

    public interface OnAnswerSelectedListener {
        void onAnswerSelected(int answer);
    }
}
奋斗的bigHead 发布了206 篇原创文章 · 获赞 68 · 访问量 6万+ 私信 关注

标签:public,RadioButton,RadioGroup,qst,import,Android,getOptions,android,view
来源: https://blog.csdn.net/u013728021/article/details/104441761

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有