当前位置:   article > 正文

Android中RadioGroup在代码中动态添加子控件RadioButton_android 代码添加groupbutton

android 代码添加groupbutton

如下图:


我用红线圈出的地方,这个地方想来还得在代码中动态生成,因为个数你不确定

下面看代码:

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import com.ss.b.helps.DensityUtilHelps;
  4. import android.app.Activity;
  5. import android.graphics.Color;
  6. import android.graphics.drawable.ColorDrawable;
  7. import android.os.Bundle;
  8. import android.view.Gravity;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11. import android.widget.LinearLayout;
  12. import android.widget.RadioButton;
  13. import android.widget.RadioGroup;
  14. import android.widget.Toast;
  15. public class WecomActivity extends Activity{
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. // TODO Auto-generated method stub
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_wecom);
  21. initViewTwo();
  22. }
  23. public void initViewTwo(){
  24. RadioGroup radiogroup=(RadioGroup) findViewById(R.id.gadiogroup);
  25. addview(radiogroup);
  26. }
  27. public List<String> getListSize(){
  28. List<String>list=new ArrayList<String>();
  29. list.add("服装33333");
  30. list.add("玩具44444");
  31. list.add("饰品5555");
  32. list.add("饰品6666");
  33. list.add("文具7777");
  34. list.add("文具8888");
  35. list.add("文具9999");
  36. return list;
  37. }
  38. //动态添加视图
  39. public void addview(RadioGroup radiogroup){
  40. int index=0;
  41. for(String ss:getListSize()){
  42. RadioButton button=new RadioButton(this);
  43. setRaidBtnAttribute(button,ss,index);
  44. radiogroup.addView(button);
  45. LinearLayout.LayoutParams layoutParams= (LinearLayout.LayoutParams) button
  46. .getLayoutParams();
  47. layoutParams.setMargins(0, 0, DensityUtilHelps.Dp2Px(this,10), 0);//4个参数按顺序分别是左上右下
  48. button.setLayoutParams(layoutParams);
  49. index++;
  50. }
  51. }
  52. private void setRaidBtnAttribute( final RadioButton codeBtn, String btnContent, int id ){
  53. if( null == codeBtn ){
  54. return;
  55. }
  56. codeBtn.setBackgroundResource(R.drawable.radio_group_selector);
  57. codeBtn.setTextColor(this.getResources().getColorStateList(R.drawable.color_radiobutton));
  58. codeBtn.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));
  59. //codeBtn.setTextSize( ( textSize > 16 )?textSize:24 );
  60. codeBtn.setId( id );
  61. codeBtn.setText( btnContent );
  62. //codeBtn.setPadding(2, 0, 2, 0);
  63. codeBtn.setGravity( Gravity.CENTER );
  64. codeBtn.setOnClickListener( new OnClickListener( ) {
  65. @Override
  66. public void onClick(View v) {
  67. Toast.makeText(WecomActivity.this, codeBtn.getText().toString(), Toast.LENGTH_SHORT).show();
  68. }
  69. });
  70. //DensityUtilHelps.Dp2Px(this,40)
  71. LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT , DensityUtilHelps.Dp2Px(this,25) );
  72. codeBtn.setLayoutParams( rlp );
  73. }
  74. }
布局文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:gravity="center"
  6. android:orientation="vertical" >
  7. <LinearLayout
  8. android:layout_width="fill_parent"
  9. android:layout_height="40dp"
  10. android:orientation="vertical"
  11. >
  12. <HorizontalScrollView
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:scrollbars="none"
  16. android:background="@null"
  17. >
  18. <RadioGroup
  19. android:id="@+id/gadiogroup"
  20. android:layout_width="fill_parent"
  21. android:layout_height="fill_parent"
  22. android:gravity="center_vertical"
  23. android:orientation="horizontal"
  24. android:paddingLeft="10dp" >
  25. </RadioGroup>
  26. </HorizontalScrollView>
  27. </LinearLayout>
  28. </LinearLayout>

color_radiobutton.xml文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >
  3. <item android:state_checked="true" android:color="@color/whitecolor"/>
  4. <!-- not selected -->
  5. <item android:state_checked="false" android:color="@color/buttom_tv"/>
  6. </selector>
radio_group_selector.xml如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >
  3. <item android:state_checked="true"><shape>
  4. <!-- 这个是选中的 设为true -->
  5. <solid android:color="@color/toubu" />
  6. <!-- 这个是按压的颜色 -->
  7. <stroke android:width="1dp" android:color="@color/toubu" />
  8. <corners android:radius="10dp" />
  9. <!-- 四角的弧度 -->
  10. </shape></item>
  11. <!-- 这个是未选中的状态 -->
  12. <item android:state_checked="false"><shape>
  13. <!-- 这个是按压状态的 设为true -->
  14. <solid android:color="@color/gray" />
  15. <!-- 这个是按压的颜色 -->
  16. <stroke android:width="1dp" android:color="@color/gray" />
  17. <corners android:radius="10dp" />
  18. <!-- 四角的弧度 -->
  19. </shape></item>
  20. </selector>
用到的几个颜色如下:

  1. <color name="whitecolor">#ffffff</color>
  2. <color name="buttom_tv">#484747</color>
  3. <color name="toubu">#f4692a</color>
  4. <color name="gray">#d3d3d3</color>

效果图片如下:

                 


有需要的可以看看



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/733720
推荐阅读
相关标签
  

闽ICP备14008679号