如何获得动态设置单选按钮的值? [英] How to get values of dynamically set radiobuttons?
本文介绍了如何获得动态设置单选按钮的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一组动态单选按钮,它的值从字符串数组得出的。我想获得一些按钮,点击所有选定单选按钮的值。怎么做 ?任何想法
下面是我的工作拷贝
公共类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,NULL); 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,NULL); 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屋!
查看全文