目錄
4.6向左或向右---RadioGroup組與onCheckedChanged事件
目標:
可以在選擇RadioButton的同時進行事件處理.
方法:
RadioGroup的setOnCheckedChangeListener方法
Button的setOnClickListener方法.
代碼:
RadioGroupActivity.java
package edu.cquptzx.RadioGroup;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
publicclass RadioGroupActivity extends Activity {
private TextView tv;
private RadioGroup rg;
private RadioButton rb1,rb2;
private Button clearBtn,answerBtn;
/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根據ID找到對象
tv = (TextView) findViewById(R.id.textView);
rg = (RadioGroup) findViewById(R.id.myRadioGroup);
rb1 = (RadioButton) findViewById(R.id.radioButton1);
rb2 = (RadioButton) findViewById(R.id.radioButton2);
clearBtn = (Button) findViewById(R.id.ClearButton);
answerBtn = (Button) findViewById(R.id.AnswerButton);
rg.setOnCheckedChangeListener(rgOnCheckedChangeListener);
clearBtn.setOnClickListener(clearBtnOnClickListener);
answerBtn.setOnClickListener(answerBtnOnClickListener);
}
//選中RadioButton的同時進行事件處理:這里的例子是改變TextView的文字內容.
private RadioGroup.OnCheckedChangeListener rgOnCheckedChangeListener = new RadioGroup.OnCheckedChangeListener()
{
@Override
publicvoid onCheckedChanged(RadioGroup group, int checkedId)
{
if(checkedId == rb1.getId())
{
tv.setText(rb1.getText());
}
elseif (checkedId == rb2.getId())
{
tv.setText(rb2.getText());
}
}
};
//清除選中狀態.
private Button.OnClickListener clearBtnOnClickListener = new Button.OnClickListener()
{
publicvoid onClick(View v)
{
rg.clearCheck();
tv.setText(getString(R.string.who));
}
};
//回答問題.
private Button.OnClickListener answerBtnOnClickListener = new Button.OnClickListener()
{
publicvoid onClick(View v)
{
//回答正確
if(rb1.isChecked())
{
//tv.setText(rb1.getText());
new AlertDialog.Builder(RadioGroupActivity.this)
.setIcon(R.drawable.right)
.setTitle(R.string.Dialog_Title_Right)
.setMessage(R.string.Dialog_Message_Right)
.setPositiveButton("ok", null)
.show();
tv.setText(getString(R.string.who));
}
//回答錯誤.
if (rb2.isChecked())
{
//tv.setText(rb2.getText());
new AlertDialog.Builder(RadioGroupActivity.this)
.setIcon(R.drawable.wrong)
.setTitle(R.string.Dialog_Title_Wrong)
.setMessage(R.string.Dialog_Message_Wrong)
.setPositiveButton("ok", null)
.show();
tv.setText(getString(R.string.who));
}
//什么都沒選
if(rb1.isChecked()== false && rb2.isChecked()==false)
{
System.out.println("A");
Toast.makeText(getBaseContext(),"好像什么都沒有選哦",Toast.LENGTH_LONG).show();
System.out.println("B");
}
}
};
}
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/who"
android:textSize="22dp"
android:textColor="#FF00FF"/>
<RadioGroup
android:id="@+id/myRadioGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/M" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/W" />
</RadioGroup>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/ClearButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:gravity="left"
android:text="清除" />
<Button
android:id="@+id/AnswerButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="right"
android:text="回答" />
</LinearLayout>
</LinearLayout>
效果:
For more details , contacts me by :
cquptzx@qq.com or cquptzx@outlook.com

