Android自定义RadioGroup实现单选完整示例

来源:互联网 发布:目前java主流开发框架 编辑:程序博客网 时间:2024/04/30 11:57


http://blog.csdn.net/jdsjlzx/article/details/24024281

http://blog.csdn.net/jdsjlzx/article/details/24024281

http://blog.csdn.net/jdsjlzx/article/details/24024281

http://blog.csdn.net/jdsjlzx/article/details/24024281

http://blog.csdn.net/jdsjlzx/article/details/24024281



 

Android自定义RadioGroup实现单选完整示例

分类: Android UI Android开发 300人阅读 评论(0) 收藏 举报

MainActivity如下:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package cc.testradiogroup;  
  2.   
  3. import android.os.Bundle;  
  4. import android.widget.RadioButton;  
  5. import android.widget.RadioGroup;  
  6. import android.widget.RadioGroup.OnCheckedChangeListener;  
  7. import android.app.Activity;  
  8. /** 
  9.  * Demo描述: 
  10.  * 利用自定义RadioGroup实现单选 
  11.  * 
  12.  * 参考资料: 
  13.  * 1 http://blog.csdn.net/xiaanming 
  14.  * 2 http://bbs.51cto.com/thread-954128-1.html 
  15.  *  
  16.  *   Thank you very much 
  17.  */  
  18. public class MainActivity extends Activity {  
  19.     private RadioGroup mRadioGroup;   
  20.     @Override  
  21.     protected void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         init();  
  25.     }  
  26.     
  27.     private void init(){  
  28.         mRadioGroup=(RadioGroup) findViewById(R.id.radioGroup);  
  29.         mRadioGroup.setOnCheckedChangeListener(new RadioButtonOnCheckedChangeListenerImpl());  
  30.     }  
  31.       
  32.     // 监听单选的变化  
  33.     private class RadioButtonOnCheckedChangeListenerImpl implements OnCheckedChangeListener {  
  34.         @Override  
  35.         public void onCheckedChanged(RadioGroup group, int checkedId) {  
  36.             RadioButton rb = (RadioButton) findViewById(group.getCheckedRadioButtonId());  
  37.             String currentSelected = rb.getText().toString();  
  38.             System.out.println("现在选中是:" + currentSelected);  
  39.         }  
  40.     }  
  41.   
  42. }  


main.xml如下:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!-- 步骤如下: -->  
  3. <!--1: android:button="@null" 去掉自带的图标   -->  
  4. <!--2:android:drawableRight="@drawable/line" 在文字的右边设置图片-->  
  5. <!--3: android:drawablePadding="10dip" 图片与文字间的距离-->  
  6. <!--4:android:layout_marginLeft="-17dip" 每个RadioButton距离左边缘或者距其左RadioButton的距离-->  
  7. <LinearLayout   
  8.     xmlns:android="http://schemas.android.com/apk/res/android"  
  9.     android:layout_width="fill_parent"  
  10.     android:layout_height="fill_parent"  
  11.     android:orientation="vertical"  
  12.     android:gravity="center_horizontal" >  
  13.   
  14.     <TextView  
  15.         android:layout_width="wrap_content"  
  16.         android:layout_height="wrap_content"  
  17.         android:textSize="15sp"  
  18.         android:text="测试自定义的RadioGroup来实现单选功能" >  
  19.     </TextView>  
  20.   
  21.     <RadioGroup  
  22.         android:id="@+id/radioGroup"  
  23.         android:layout_width="wrap_content"  
  24.         android:layout_height="wrap_content"  
  25.         android:orientation="horizontal"  
  26.         android:background="@drawable/bg" >  
  27.   
  28.         <RadioButton  
  29.             android:id="@+id/cai"  
  30.             android:layout_width="wrap_content"  
  31.             android:layout_height="wrap_content"  
  32.             android:layout_marginLeft="-17dip"  
  33.             android:checked="true"  
  34.             android:button="@null"  
  35.             android:drawableRight="@drawable/line"  
  36.             android:drawablePadding="10dip"  
  37.             android:text="菜"  
  38.             android:textColor="@drawable/text_selector" >  
  39.         </RadioButton>  
  40.   
  41.         <RadioButton  
  42.             android:id="@+id/tang"  
  43.             android:layout_width="wrap_content"  
  44.             android:layout_height="wrap_content"  
  45.              android:layout_marginLeft="-15dip"  
  46.             android:button="@null"  
  47.             android:drawableRight="@drawable/line"  
  48.             android:drawablePadding="10dip"  
  49.             android:text="汤"   
  50.             android:textColor="@drawable/text_selector">  
  51.         </RadioButton>  
  52.           
  53.         <RadioButton  
  54.             android:id="@+id/zhushi"  
  55.             android:layout_width="wrap_content"  
  56.             android:layout_height="wrap_content"  
  57.              android:layout_marginLeft="-15dip"  
  58.             android:button="@null"  
  59.             android:drawableRight="@drawable/line"  
  60.             android:drawablePadding="10dip"  
  61.             android:text="主   食"  
  62.             android:textColor="@drawable/text_selector" >  
  63.         </RadioButton>  
  64.           
  65.         <RadioButton  
  66.             android:id="@+id/zhou"  
  67.             android:layout_width="wrap_content"  
  68.             android:layout_height="wrap_content"  
  69.              android:layout_marginLeft="-15dip"  
  70.             android:button="@null"  
  71.             android:drawableRight="@drawable/line"  
  72.             android:drawablePadding="15dip"  
  73.             android:text="粥"  
  74.             android:textColor="@drawable/text_selector" >  
  75.         </RadioButton>  
  76.     </RadioGroup>  
  77.   
  78. </LinearLayout>  

text_selector.xml如下:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.       <item android:color="#ffffff" android:state_checked="true"/>  
  4.       <item android:color="#000000"/>  
  5. </selector>  








http://blog.csdn.net/Android_Tutor/article/details/4804587

http://blog.csdn.net/Android_Tutor/article/details/4804587

http://blog.csdn.net/Android_Tutor/article/details/4804587

http://blog.csdn.net/Android_Tutor/article/details/4804587

http://blog.csdn.net/Android_Tutor/article/details/4804587http://blog.csdn.net/Android_Tutor/article/details/4804587http://blog.csdn.net/Android_Tutor/article/details/4804587


http://blog.csdn.net/Android_Tutor/article/details/4804587



http://blog.csdn.net/Android_Tutor/article/details/4804587


http://blog.csdn.net/Android_Tutor/article/details/4804587



http://blog.csdn.net/Android_Tutor/article/details/4804587



http://blog.csdn.net/Android_Tutor/article/details/4804587



Android基础教程(七)之----单选项框RadioGroup的综合应用

分类: Android基础教程 28243人阅读 评论(12) 收藏 举报
androidradiobuttonlayoutstringencodingclass

 大家好,我们今天这一节要介绍的是RadioGroup 的组事件.RadioGroup 可将各自不同的RadioButton ,设限于同一个Radio 按钮组,同一个RadioGroup 组里的按钮,只能做出单一选择(单选题).

首先,我们先设计一个TextView Widget ,以及一个RadioGroup ,并将该RadioGroup 内放置两个RadioButton ,默认为都不选择,在程序运行阶段,利用onCheckedChanged 作为启动事件装置,让User选择其中一个按钮,显示被选择的内容,最的将RadioButton 的选项文字显示于TextView 当中.

 

下面我们看一下效果图:

 

    

 

 

下面是涉及的相关代码:

 

string.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="hello">Hello World, RadioGroupDemo</string>
  <string name="app_name">RadioGroupDemo</string>
  <string name="tr_radio_op1">帅哥</string>
  <string name="tr_radio_op2">美女</string>
  <string name="str_radio_question1">请问你是?</string> 

</resources>

 

主布局main.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <!--第一個TextView -->
  <TextView
    android:id="@+id/myTextView"
    android:layout_width="228px"
    android:layout_height="49px"
    android:text="@string/str_radio_question1"
    android:textSize="30sp"    
  />   
  <!--建立一個RadioGroup -->
  <RadioGroup
    android:id="@+id/myRadioGroup"
    android:layout_width="137px"
    android:layout_height="216px"
    android:orientation="vertical"
    >
    <!--第一個RadioButton -->
    <RadioButton
      android:id="@+id/myRadioButton1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/tr_radio_op1"
    />
    <!--第二個RadioButton -->
    <RadioButton
      android:id="@+id/myRadioButton2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/tr_radio_op2"
    />
    </RadioGroup>  
   
</LinearLayout>

 

最后是主控制程序RadioGroupDemo.java:

 

package com.android.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class RadioGroupDemo extends Activity 
{
  public TextView mTextView1;
  public RadioGroup mRadioGroup1; 
  public RadioButton mRadio1,mRadio2; 

  
  public void onCreate(Bundle savedInstanceState) 
  { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
     
    /*取得 TextView、RadioGroup、RadioButton对象*/
    mTextView1 = (TextView) findViewById(R.id.myTextView);
    mRadioGroup1 = (RadioGroup) findViewById(R.id.myRadioGroup);
    mRadio1 = (RadioButton) findViewById(R.id.myRadioButton1);
    mRadio2 = (RadioButton) findViewById(R.id.myRadioButton2); 
      
    /*RadioGroup用OnCheckedChangeListener来运行*/ 
    mRadioGroup1.setOnCheckedChangeListener(mChangeRadio);
 
  } 
   
  private RadioGroup.OnCheckedChangeListener mChangeRadio = new 
           RadioGroup.OnCheckedChangeListener()
  { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId)
    { 
      // TODO Auto-generated method stub 
      if(checkedId==mRadio1.getId())
      { 
        /*把mRadio1的内容传到mTextView1*/
        mTextView1.setText(mRadio1.getText());
      } 
      else if(checkedId==mRadio2.getId()) 
      { 
        /*把mRadio2的内容传到mTextView1*/
        mTextView1.setText(mRadio2.getText()); 
      }       
    } 
  };
 
}

 

运行RadioGroupDemo.java ,将得到以上效果...今天就到这~


0 0