如何获得动态设置单选按钮的值? [英] How to get values of dynamically set radiobuttons?

查看:184
本文介绍了如何获得动态设置单选按钮的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组动态单选按钮,它的值从字符串数组得出的。我想获得一些按钮,点击所有选定单选按钮的值。怎么做 ?任何想法

下面是我的工作拷贝

 公共类MainActivity延伸活动{    私人的ArrayList<产品与GT; pProductArrayList;
    私人的ArrayList<&子类别GT; pSubItemArrayList;
    私人的ArrayList<&子类别GT; pSubItemArrayList2;
    私人的LinearLayout mLinearListView;
    布尔isFirstViewClick = FALSE;
    布尔isSecondViewClick = FALSE;
    单选rdbtn;
    私人RadioGroup中radioGroup中;
    私有String [] = shownames {AA,BB,CC}; //动态显示名称
    私有String []应用= {DD,EE,FF,GHI}; //动态应用程序了名
    私有String [] DEVICE = {JKL,MNO,焊接工艺评定,STU}; //动态设备名称    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        mLinearListView =(的LinearLayout)findViewById(R.id.linear_listview);        ArrayList的<&ITEMLIST GT; mItemListArray =新的ArrayList<&ITEMLIST GT;();
        mItemListArray.add(新ITEMLIST(,));        ArrayList的<&ITEMLIST GT; mItemListArray2 =新的ArrayList<&ITEMLIST GT;();
        mItemListArray2.add(新ITEMLIST(,));        pSubItemArrayList =新的ArrayList<&子类别GT;();
        pSubItemArrayList2 =新的ArrayList<&子类别GT;();        pSubItemArrayList.add(新的子类别(选择应用程序/设备,mItemListArray)); //静态头
        pSubItemArrayList2.add(新的子类别(选择设备,mItemListArray2)); //静态头        pProductArrayList =新的ArrayList<产品及GT;();        的for(int i = 0; I< shownames.length;我++){
            pProductArrayList.add(新产品(shownames [I],pSubItemArrayList));
        }        的for(int i = 0; I< pProductArrayList.size();我++){            LayoutInflater吹气= NULL;
            吹气=(LayoutInflater)getApplicationContext()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
            查看mLinearView = inflater.inflate(R.layout.row_first,NULL);            最终的TextView mProductName =(TextView中)mLinearView.findViewById(R.id.textViewName);
            最终的RelativeLayout mLinearFirstArrow =(RelativeLayout的)mLinearView.findViewById(R.id.linearFirst);
            最后ImageView的mImageArrowFirst =(ImageView的)mLinearView.findViewById(R.id.imageFirstArrow);
            最终的LinearLayout mLinearScrollSecond =(的LinearLayout)mLinearView.findViewById(R.id.linear_scroll);            如果(isFirstViewClick == FALSE){
            mLinearScrollSecond.setVisibility(View.GONE);
            mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
            }            其他{
                mLinearScrollSecond.setVisibility(View.VISIBLE);
                mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
            }            mLinearFirstArrow.setOnTouchListener(新OnTouchListener(){                @覆盖
                公共布尔onTouch(视图V,MotionEvent事件){                    如果(isFirstViewClick == FALSE){
                        isFirstViewClick = TRUE;
                        mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
                        mLinearScrollSecond.setVisibility(View.VISIBLE);                    }其他{
                        isFirstViewClick = FALSE;
                        mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
                        mLinearScrollSecond.setVisibility(View.GONE);
                    }
                    返回false;
                }
            });
            最终的字符串名称= pProductArrayList.get(I).getpName();
            mProductName.setText(名);            / **
             *
             * /
            对于(INT J = 0; J< pProductArrayList.get(I).getmSubCategoryList()大小(); J ++){                LayoutInflater inflater2 = NULL;
                inflater2 =(LayoutInflater)getApplicationContext()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
                查看mLinearView2 = inflater2.inflate(R.layout.row_second,NULL);                TextView的mSubItemName =(TextView中)mLinearView2.findViewById(R.id.textViewTitle);
                最终的RelativeLayout mLinearSecondArrow =(RelativeLayout的)mLinearView2.findViewById(R.id.linearSecond);
                最后ImageView的mImageArrowSecond =(ImageView的)mLinearView2.findViewById(R.id.imageSecondArrow);
                最终的LinearLayout mLinearScrollThird =(的LinearLayout)mLinearView2.findViewById(R.id.linear_scroll_third);                如果(isSecondViewClick == FALSE){
                    mLinearScrollThird.setVisibility(View.GONE);
                    mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
                    }
                    其他{
                        mLinearScrollThird.setVisibility(View.VISIBLE);
                        mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
                    }                mLinearSecondArrow.setOnTouchListener(新OnTouchListener(){                        @覆盖
                        公共布尔onTouch(视图V,MotionEvent事件){                            如果(isSecondViewClick == FALSE){
                                isSecondViewClick = TRUE;
                                mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
                                mLinearScrollThird.setVisibility(View.VISIBLE);                            }其他{
                                isSecondViewClick = FALSE;
                                mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
                                mLinearScrollThird.setVisibility(View.GONE);
                            }
                            返回false;
                        }
                    });
                。最后弦乐catName = pProductArrayList.get(I).getmSubCategoryList()获得(J).getpSubCatName();
                mSubItemName.setText(catName);
                为(中间体K = 0; K&下; pProductArrayList.get(ⅰ).getmSubCategoryList()获得(j)条.getmItemListArray()大小();说明k ++){                        LayoutInflater inflater3 = NULL;
                        inflater3 =(LayoutInflater)getApplicationContext()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
                        查看mLinearView3 = inflater3.inflate(R.layout.row_third,NU​​LL);                        radioGroup中=(RadioGroup中)mLinearView3.findViewById(R.id.myRadioGroup);                        为(中间体m为0; M&下; application.length; M +){
                               rdbtn =新的单选按钮(本);
                               rdbtn.setId(米);
                               rdbtn.setText(应用[M]);
                               radioGroup.addView(rdbtn);
                        }
                        mLinearScrollThird.addView(mLinearView3);                }
                为(int类型l = 0; L&下; pProductArrayList.get(ⅰ).getmSubCategoryList()获得(j)条.getmItemListArray()大小();;●++){                    LayoutInflater inflater4 = NULL;
                    inflater4 =(LayoutInflater)getApplicationContext()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
                    查看mLinearView4 = inflater4.inflate(R.layout.row_third,NU​​LL);                    radioGroup中=(RadioGroup中)mLinearView4.findViewById(R.id.myRadioGroup);                    为(中间体m为0; M&下; device.length; M +){
                           rdbtn =新的单选按钮(本);
                           rdbtn.setId(米);
                           rdbtn.setText(设备[M]);
                           radioGroup.addView(rdbtn);
                    }
                        mLinearScrollThird.addView(mLinearView4);                }                mLinearScrollSecond.addView(mLinearView2);            }            mLinearListView.addView(mLinearView);
        }
    }}


解决方案

如果你想获得的检查单选按钮的值(radioGroup中里面只有一个项目),当你点击一个按钮,你可以使用这样的:

  RadioGroup中组=(RadioGroup中)findViewById(R.id.radio_group_id);
Button按钮=(按钮)findViewById(R.id.button_id);//如果你想在一个TextView打印电台的价值
TextView的标签=(的TextView)findViewById(R.id.text_view_id);button.setOnClickListener(新View.OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){            INT checkedId = group.getCheckedRadioButtonId();            单选按钮单选=(单选)findViewById(checkedId);
            label.setText(radio.getText());        }
    });

I am having a dynamic set of radiobuttons whose value drawn from string array. I want to get the values of all selected radiobuttons on click of some button. How to do that ? Any idea

Below is my working copy

public class MainActivity extends Activity {

    private ArrayList<Product>pProductArrayList;
    private ArrayList<SubCategory>pSubItemArrayList;
    private ArrayList<SubCategory>pSubItemArrayList2;
    private LinearLayout mLinearListView;
    boolean isFirstViewClick=false;
    boolean isSecondViewClick=false;
    RadioButton rdbtn;
    private RadioGroup radioGroup;
    private String[] shownames = {"AA", "BB", "CC"};                                              //Dynamic Show Names
    private String[] application = {"DD", "EE", "FF", "GHI"};                    //Dynamic Applicaiton Names
    private String[] device = {"JKL", "MNO", "PQR", "STU"};                                                //Dynamic Device Names

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLinearListView = (LinearLayout) findViewById(R.id.linear_listview);

        ArrayList<ItemList> mItemListArray=new ArrayList<ItemList>();
        mItemListArray.add(new ItemList("", ""));  

        ArrayList<ItemList> mItemListArray2=new ArrayList<ItemList>();
        mItemListArray2.add(new ItemList("", ""));  

        pSubItemArrayList=new ArrayList<SubCategory>();
        pSubItemArrayList2=new ArrayList<SubCategory>();

        pSubItemArrayList.add(new SubCategory("Select Application/Device", mItemListArray));                                       //Static Header
        pSubItemArrayList2.add(new SubCategory("Select Device", mItemListArray2));                                                 //Static Header

        pProductArrayList=new ArrayList<Product>();

        for (int i = 0; i < shownames.length; i++){
            pProductArrayList.add(new Product(shownames[i], pSubItemArrayList));
        }

        for (int i = 0; i < pProductArrayList.size(); i++) {

            LayoutInflater inflater = null;
            inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View mLinearView = inflater.inflate(R.layout.row_first, null);

            final TextView mProductName = (TextView) mLinearView.findViewById(R.id.textViewName);
            final RelativeLayout mLinearFirstArrow=(RelativeLayout)mLinearView.findViewById(R.id.linearFirst);
            final ImageView mImageArrowFirst=(ImageView)mLinearView.findViewById(R.id.imageFirstArrow);
            final LinearLayout mLinearScrollSecond=(LinearLayout)mLinearView.findViewById(R.id.linear_scroll);

            if(isFirstViewClick==false){
            mLinearScrollSecond.setVisibility(View.GONE);
            mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
            }

            else{
                mLinearScrollSecond.setVisibility(View.VISIBLE);
                mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
            }

            mLinearFirstArrow.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {

                    if(isFirstViewClick==false){
                        isFirstViewClick=true;
                        mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
                        mLinearScrollSecond.setVisibility(View.VISIBLE);

                    }else{
                        isFirstViewClick=false;
                        mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
                        mLinearScrollSecond.setVisibility(View.GONE);   
                    }
                    return false;
                } 
            });


            final String name = pProductArrayList.get(i).getpName();
            mProductName.setText(name);

            /**
             * 
             */
            for (int j = 0; j < pProductArrayList.get(i).getmSubCategoryList().size(); j++) {

                LayoutInflater inflater2 = null;
                inflater2 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View mLinearView2 = inflater2.inflate(R.layout.row_second, null);

                TextView mSubItemName = (TextView) mLinearView2.findViewById(R.id.textViewTitle);
                final RelativeLayout mLinearSecondArrow=(RelativeLayout)mLinearView2.findViewById(R.id.linearSecond);
                final ImageView mImageArrowSecond=(ImageView)mLinearView2.findViewById(R.id.imageSecondArrow);
                final LinearLayout mLinearScrollThird=(LinearLayout)mLinearView2.findViewById(R.id.linear_scroll_third);

                if(isSecondViewClick==false){
                    mLinearScrollThird.setVisibility(View.GONE);
                    mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
                    }
                    else{
                        mLinearScrollThird.setVisibility(View.VISIBLE);
                        mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
                    }

                mLinearSecondArrow.setOnTouchListener(new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {

                            if(isSecondViewClick==false){
                                isSecondViewClick=true;
                                mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
                                mLinearScrollThird.setVisibility(View.VISIBLE);

                            }else{
                                isSecondViewClick=false;
                                mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
                                mLinearScrollThird.setVisibility(View.GONE);    
                            }
                            return false;
                        } 
                    });


                final String catName = pProductArrayList.get(i).getmSubCategoryList().get(j).getpSubCatName();
                mSubItemName.setText(catName);


                for (int k = 0; k < pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().size(); k++) {

                        LayoutInflater inflater3 = null;
                        inflater3 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        View mLinearView3 = inflater3.inflate(R.layout.row_third, null);

                        radioGroup = (RadioGroup) mLinearView3.findViewById(R.id.myRadioGroup);

                        for(int m=0;m<application.length;m++) {
                               rdbtn = new RadioButton(this);
                               rdbtn.setId(m);
                               rdbtn.setText(application[m]);
                               radioGroup.addView(rdbtn);
                        }
                        mLinearScrollThird.addView(mLinearView3);

                }


                for (int l = 0; l < pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().size(); l++) {

                    LayoutInflater inflater4 = null;
                    inflater4 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View mLinearView4 = inflater4.inflate(R.layout.row_third, null);

                    radioGroup = (RadioGroup) mLinearView4.findViewById(R.id.myRadioGroup);

                    for(int m=0;m<device.length;m++) {
                           rdbtn = new RadioButton(this);
                           rdbtn.setId(m);
                           rdbtn.setText(device[m]);
                           radioGroup.addView(rdbtn);
                    }
                        mLinearScrollThird.addView(mLinearView4);

                }

                mLinearScrollSecond.addView(mLinearView2);

            }

            mLinearListView.addView(mLinearView);
        }       


    }

}

解决方案

If you want to get the values of the checked radioButton (inside the radioGroup it's only one item) when you click a button you could use this:

RadioGroup group = (RadioGroup)findViewById(R.id.radio_group_id);
Button button = (Button)findViewById(R.id.button_id);

//if you want to print radio's value in a textView
TextView label  = (TextView)findViewById(R.id.text_view_id);

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            int checkedId = group.getCheckedRadioButtonId();

            RadioButton radio = (RadioButton)findViewById(checkedId);
            label.setText(radio.getText());

        }
    });

这篇关于如何获得动态设置单选按钮的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆