Android 小項目之--猜名字有獎!RadionButton 和RadionGroup應用(附源碼)
2010-05-28 14:21 Terry_龙 阅读(2364) 评论(1) 编辑 收藏 举报有想過友Android的小屏幕上把asp.net 的RadionButtonList搬進來用嗎?答案是肯定的,Android 的Tool工具提供了一個RadioGroup控件,可將各大自不同的RadioButton設限于同一個Radio按鈕組,這樣子就可以做到單選的效果了,那要怎么樣用呢?先看截圖:
我們要做的事是:當用戶猜題或者選擇一個特定某個選項時,我們將在後臺判斷用戶是否選中,如果選中者相應的做出處理,具體處理看各自項目的需求,代碼片段一:

mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mRadioButton1.isChecked())
{
mRadioButton1.setChecked(false);
}
if(mRadioButton2.isChecked())
{
mRadioButton2.setChecked(false);
}
if(mRadioButton3.isChecked())
{
mRadioButton3.setChecked(false);
}
if(mRadioButton4.isChecked())
{
mRadioButton4.setChecked(false);
}
}
});
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mRadioButton1.isChecked())
{
mRadioButton1.setChecked(false);
}
if(mRadioButton2.isChecked())
{
mRadioButton2.setChecked(false);
}
if(mRadioButton3.isChecked())
{
mRadioButton3.setChecked(false);
}
if(mRadioButton4.isChecked())
{
mRadioButton4.setChecked(false);
}
}
});
按鈕事件,重置選中按鈕為未選中狀態。
代碼片段二:

list=new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton btn=(RadioButton)findViewById(checkedId);
if(btn.isChecked())
{
switch (checkedId) {
case R.id.RadioButton01:
Show("回答錯誤!");
break;
case R.id.RadioButton02:
Show("回答錯誤!");
break;
case R.id.RadioButton03:
Show("回答正確,獎勵你100分");
break;
case R.id.RadioButton04:
Show("回答錯誤!");
break;
}
}
}
};
mGroup.setOnCheckedChangeListener(list);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton btn=(RadioButton)findViewById(checkedId);
if(btn.isChecked())
{
switch (checkedId) {
case R.id.RadioButton01:
Show("回答錯誤!");
break;
case R.id.RadioButton02:
Show("回答錯誤!");
break;
case R.id.RadioButton03:
Show("回答正確,獎勵你100分");
break;
case R.id.RadioButton04:
Show("回答錯誤!");
break;
}
}
}
};
mGroup.setOnCheckedChangeListener(list);
}
步驟分析:一,通過checkid判斷用戶選中哪一個按鈕再判斷,如果狀態為ischeck()則做出相應處理
二,通過checkid做出彈出處理效果
完整代碼如下:

package cn.terry;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class TestRadioButton extends Activity {
private RadioGroup mGroup;
private Button mButton;
private RadioButton mRadioButton1;
private RadioButton mRadioButton2;
private RadioButton mRadioButton3;
private RadioButton mRadioButton4;
private OnCheckedChangeListener list;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mGroup=(RadioGroup)findViewById(R.id.group);
mButton=(Button)findViewById(R.id.Button1);
mRadioButton1=(RadioButton)findViewById(R.id.RadioButton01);
mRadioButton2=(RadioButton)findViewById(R.id.RadioButton02);
mRadioButton3=(RadioButton)findViewById(R.id.RadioButton03);
mRadioButton4=(RadioButton)findViewById(R.id.RadioButton04);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mRadioButton1.isChecked())
{
mRadioButton1.setChecked(false);
}
if(mRadioButton2.isChecked())
{
mRadioButton2.setChecked(false);
}
if(mRadioButton3.isChecked())
{
mRadioButton3.setChecked(false);
}
if(mRadioButton4.isChecked())
{
mRadioButton4.setChecked(false);
}
}
});
list=new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton btn=(RadioButton)findViewById(checkedId);
if(btn.isChecked())
{
switch (checkedId) {
case R.id.RadioButton01:
Show("回答錯誤!");
break;
case R.id.RadioButton02:
Show("回答錯誤!");
break;
case R.id.RadioButton03:
Show("回答正確,獎勵你100分");
break;
case R.id.RadioButton04:
Show("回答錯誤!");
break;
}
}
}
};
mGroup.setOnCheckedChangeListener(list);
}
public void Show(String msg)
{
new AlertDialog.Builder(TestRadioButton.this)
.setTitle("提示")
.setMessage(msg)
.setPositiveButton("確定", null).create().show();
}
}
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class TestRadioButton extends Activity {
private RadioGroup mGroup;
private Button mButton;
private RadioButton mRadioButton1;
private RadioButton mRadioButton2;
private RadioButton mRadioButton3;
private RadioButton mRadioButton4;
private OnCheckedChangeListener list;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mGroup=(RadioGroup)findViewById(R.id.group);
mButton=(Button)findViewById(R.id.Button1);
mRadioButton1=(RadioButton)findViewById(R.id.RadioButton01);
mRadioButton2=(RadioButton)findViewById(R.id.RadioButton02);
mRadioButton3=(RadioButton)findViewById(R.id.RadioButton03);
mRadioButton4=(RadioButton)findViewById(R.id.RadioButton04);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mRadioButton1.isChecked())
{
mRadioButton1.setChecked(false);
}
if(mRadioButton2.isChecked())
{
mRadioButton2.setChecked(false);
}
if(mRadioButton3.isChecked())
{
mRadioButton3.setChecked(false);
}
if(mRadioButton4.isChecked())
{
mRadioButton4.setChecked(false);
}
}
});
list=new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton btn=(RadioButton)findViewById(checkedId);
if(btn.isChecked())
{
switch (checkedId) {
case R.id.RadioButton01:
Show("回答錯誤!");
break;
case R.id.RadioButton02:
Show("回答錯誤!");
break;
case R.id.RadioButton03:
Show("回答正確,獎勵你100分");
break;
case R.id.RadioButton04:
Show("回答錯誤!");
break;
}
}
}
};
mGroup.setOnCheckedChangeListener(list);
}
public void Show(String msg)
{
new AlertDialog.Builder(TestRadioButton.this)
.setTitle("提示")
.setMessage(msg)
.setPositiveButton("確定", null).create().show();
}
}
源碼下載:/Files/TerryBlog/TestRadioButton.rar
如果你有什麽不懂的可以:QQ285735942 或 Email:terryyhl@gmail.com 希望能幫得到您。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架