【发布时间】:2015-03-06 12:11:34
【问题描述】:
我正在尝试从 RadioButton 中获取由数组字符串创建的值
我正在使用 OClickListener() 从 RadioButton 获取值,但显示错误
" java.lang.ClassCastException: android.widget.Button 无法转换为 android.widget.RadioButton
"
这是我的代码,请检查
for(int i =0; i<ab.length;i++)
{
RadioButton radioButtonView = new RadioButton(this);
radioButtonView.setText(ab[i]);
radioGroup.addView(radioButtonView, p);
}
Button btnDisplay = (Button) findViewById(R.id.button1);
btnDisplay.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
// get selected radio button from radioGroup
int selectedId = radioGroup.getCheckedRadioButtonId();
// find the radiobutton by returned id
String s = ((RadioButton) v ).getText().toString();
Toast.makeText(Radio_Button.this, "This is: " + s,Toast.LENGTH_LONG).show();
}
而 LogCat 是
FATAL EXCEPTION: main
Process: com.example.radiobuttondynamic, PID: 4741
java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RadioButton
at com.example.radiobuttondynamic.Radio_Button$1.onClick(Radio_Button.java:64)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
请提出改正建议
谢谢 谢谢
【问题讨论】:
-
问题是您将 v 转换为单选按钮,但它实际上是一个按钮。将此用作示例代码。查看 radioButton = radioButtonGroup.findViewById(radioButtonID);如果您有任何疑问,请发表评论。
-
@Vivek cau 请告诉我这行代码在哪里写?
-
@Ashu,我发布了我的答案。请参考。