您的位置首页百科问答

求 android RadioButton属性详解

求 android RadioButton属性详解

一: 单选按钮RadioButton在Android平台上也应用的非常多,比如一些选择项的时候,会用到单选按钮,实现单选按钮由两部分组成,也就是RadioButton和RadioGroup配合使用

RadioButton的单选按钮;

RadioGroup是单选组合框,用于将RadioButton框起来;

在没有RadioGroup的情况下,RadioButton可以全部都选中;

当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个;

注意:单选按钮的事件监听用setOnCheckedChangeListener来对单选按钮进行监听

例子:一道选择题,选择哪个城市美女最多,当然,这个就是为了测试

Java代码

1.package org.loulijun.radio;

2.

3.import android.app.Activity;

4.import android.os.Bundle;

5.import android.view.Gravity;

6.import android.widget.RadioButton;

7.import android.widget.RadioGroup;

8.import android.widget.TextView;

9.import android.widget.Toast;

10.

11.public class RadioTest extends Activity {

12. /** Called when the activity is first created. */

13. TextView textview;

14. RadioGroup radiogroup;

15. RadioButton radio1,radio2,radio3,radio4;

16. @Override

17. public void onCreate(Bundle savedInstanceState) {

18. super.onCreate(savedInstanceState);

19. setContentView(R.layout.main);

20. textview=(TextView)findViewById(R.id.textview1);

21. radiogroup=(RadioGroup)findViewById(R.id.radiogroup1);

22. radio1=(RadioButton)findViewById(R.id.radiobutton1);

23. radio2=(RadioButton)findViewById(R.id.radiobutton2);

24. radio3=(RadioButton)findViewById(R.id.radiobutton3);

25. radio4=(RadioButton)findViewById(R.id.radiobutton4);

26.

27. radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

28.

29. @Override

30. public void onCheckedChanged(RadioGroup group, int checkedId) {

31. // TODO Auto-generated method stub

32. if(checkedId==radio2.getId())

33. {

34. DisplayToast("正确答案:"+radio2.getText()+",恭喜你,回答正确!");

35. }else

36. {

37. DisplayToast("请注意,回答错误!");

38. }

39. }

40. });

41. }

42. public void DisplayToast(String str)

43. {

44. Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG);

45. toast.setGravity(Gravity.TOP,0,220);

46. toast.show();

47. }

48.}

strings.xml文件

Xml代码

1.

2.

3. 哪个城市美女多?

4. 单选按钮测试

5. 杭州

6. 成都

7. 重庆

8. 苏州

9.

main.xml文件:注意,这里面,4个RadioButton包含在RadioGroup中

Xml代码

1.

2.

3. android:orientation="vertical"

4. android:layout_width="fill_parent"

5. android:layout_height="fill_parent"

6. >

7.

8. android:layout_width="fill_parent"

9. android:layout_height="wrap_content"

10. android:text="@string/hello"

11. android:id="@+id/textview1"

12. />

13.

14. android:id="@+id/radiogroup1"

15. android:layout_width="wrap_content"

16. android:layout_height="wrap_content"

17. android:orientation="vertical"

18. android:layout_x="3px"

19. >

20.

21. android:id="@+id/radiobutton1"

22. android:layout_width="wrap_content"

23. android:layout_height="wrap_content"

24. android:text="@string/radiobutton1"

25. />

26.

27. android:id="@+id/radiobutton2"

28. android:layout_width="wrap_content"

29. android:layout_height="wrap_content"

30. android:text="@string/radiobutton2"

31. />

32.

33. android:id="@+id/radiobutton3"

34. android:layout_width="wrap_content"

35. android:layout_height="wrap_content"

36. android:text="@string/radiobutton3"

37. />

38.

39. android:id="@+id/radiobutton4"

40. android:layout_width="wrap_content"

41. android:layout_height="wrap_content"

42. android:text="@string/radiobutton4"

43. />

44.

45.

二:Android 自定义RadioButton的样式(和上面关系不大)

我们知道Android控件里的button,listview可以用xml的样式自定义成自己希望的漂亮样式。

最近用到RadioButton,利用xml修改android:background="@drawable/button_drawable",其中button_drawable为自己定义的.xml文件(res/drawable文件下),但是不成功,到网上查找,也没有正确的说法,我就开始自己尝试,最后做好了。

其实方法很简单,同样在res/drawable新建radiobutton.xml如下

Xml代码

1.

2.

3.

4.

5.

6. android:state_enabled="true"

7.

8. android:state_checked="true"

9.

10. android:drawable="@drawable/check" />

11.

12.

13.

14. android:state_enabled="true"

15.

16. android:state_checked="false"

17.

18. android:drawable="@drawable/checknull" />

19.

20.

check和checknull分别为选中和位选中的图片。

然后在你的布局文件中,RadioButton 布局

设置android:button = "@drawable/radiobutton",就可以了!

android:state_checked="false"

android:state_checked="true"

看意思应该就是这个了。。你试试、