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

如下图:

Android中RadioGroup在代码中动态添加子控件RadioButton_第1张图片

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

下面看代码:

import java.util.ArrayList;
import java.util.List;
import com.ss.b.helps.DensityUtilHelps;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class WecomActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_wecom);
		initViewTwo();
		
	}

	public void initViewTwo(){
		   RadioGroup radiogroup=(RadioGroup) findViewById(R.id.gadiogroup);

		   
		   addview(radiogroup);
	  }
		
	   public List getListSize(){
		   Listlist=new ArrayList();
		   list.add("服装33333");
		   list.add("玩具44444");
		   list.add("饰品5555");
		   list.add("饰品6666");
		   list.add("文具7777");
		   list.add("文具8888");
		   list.add("文具9999");
		   return list;
	   }
	   
	  //动态添加视图
	public void addview(RadioGroup radiogroup){
		
		int index=0;
		for(String ss:getListSize()){
			
			RadioButton  button=new RadioButton(this);
			 setRaidBtnAttribute(button,ss,index);
			
			 radiogroup.addView(button);
			 
			 LinearLayout.LayoutParams layoutParams= (LinearLayout.LayoutParams) button
					 .getLayoutParams();
			 layoutParams.setMargins(0, 0,  DensityUtilHelps.Dp2Px(this,10), 0);//4个参数按顺序分别是左上右下
			 button.setLayoutParams(layoutParams);
			 index++;
		}
	 
		
	}
		
		
	private void setRaidBtnAttribute( final RadioButton codeBtn, String btnContent, int id ){
		 if( null == codeBtn ){  
	         return;  
	     }  
	    codeBtn.setBackgroundResource(R.drawable.radio_group_selector);
	    codeBtn.setTextColor(this.getResources().getColorStateList(R.drawable.color_radiobutton)); 
	    codeBtn.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT)); 
	    //codeBtn.setTextSize( ( textSize > 16 )?textSize:24 );  
	    codeBtn.setId( id );  
	    codeBtn.setText( btnContent );  
	    //codeBtn.setPadding(2, 0, 2, 0);
	   
	    codeBtn.setGravity( Gravity.CENTER );  
	    codeBtn.setOnClickListener( new OnClickListener( ) {  
	        @Override  
	        public void onClick(View v) {  
	           Toast.makeText(WecomActivity.this, codeBtn.getText().toString(), Toast.LENGTH_SHORT).show(); 
	        }  
	    });  
	      //DensityUtilHelps.Dp2Px(this,40)
	    LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT , DensityUtilHelps.Dp2Px(this,25) );  
	   
	    codeBtn.setLayoutParams( rlp );  
	}  

}
布局文件如下:



   
          

             
             
         
             
         
         
         
         
         
     
     



color_radiobutton.xml文件如下:



         
        
      

radio_group_selector.xml如下:



    

            
            
            
            

            
            
        
        
         

            
            
            
            

            
            
        
   


用到的几个颜色如下:

 #ffffff
       #484747
       #f4692a
       #d3d3d3  

效果图片如下:

Android中RadioGroup在代码中动态添加子控件RadioButton_第2张图片                 Android中RadioGroup在代码中动态添加子控件RadioButton_第3张图片


有需要的可以看看



你可能感兴趣的:(Android中RadioGroup在代码中动态添加子控件RadioButton)