
我知道为什么当我选择一个单选按钮时这会导致我的应用程序崩溃?
我已经导入了android.Widget.RadioGroup.OnCheckedchangelistener,我也试过了
new RadioGroup.OnCheckedchangelistener()这是类似帖子的解决方案.
代码是(添加了logcat):
RadioGroup ringtone_radio_group = (RadioGroup)findVIEwByID(R.ID.ringtone_radio_group); ringtone_radio_group.setonCheckedchangelistener(new OnCheckedchangelistener() { @OverrIDe public voID onCheckedChanged(RadioGroup group, int checkedID) { Toast.makeText(getApplicationContext(), "checked ID = " + checkedID, Toast.LENGTH_SHORT).show(); } });布局是:
<?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" androID:layout_gravity="left"> <TextVIEw androID:ID="@+ID/ringtone_Title" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:gravity="center_horizontal" androID:textSize="30sp" androID:text="Hello!"/> <RadioGroup androID:ID="@+ID/ringtone_radio_group" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="vertical"> <relativeLayout androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="horizontal"> <Radiobutton androID:ID="@+ID/ringtone_button_1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/ringtone1" androID:onClick="onRadiobuttonClicked"/> <button androID:ID="@+ID/play_button_1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignParentRight="true" androID:layout_toRightOf="@ID/ringtone_button_1" androID:text="Play" /> </relativeLayout> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:orIEntation="horizontal"> <Radiobutton androID:ID="@+ID/ringtone_button_2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/ringtone2" androID:onClick="onRadiobuttonClicked"/> <button androID:ID="@+ID/play_button_2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Play" /> </linearLayout> <linearLayout androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="horizontal"> <Radiobutton androID:ID="@+ID/ringtone_button_3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/ringtone3" androID:onClick="onRadiobuttonClicked"/> <button androID:ID="@+ID/play_button_3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Play" /> </linearLayout> </RadioGroup></linearLayout> logcat:
05-31 11:09:36.053: E/AndroIDRuntime(26969): java.lang.IllegalStateException: Could not find a method onRadiobuttonClicked(VIEw) in the activity class com.example.ringtones.MainActivity for onClick handler on vIEw class androID.Widget.Radiobutton with ID 'ringtone_button_1'05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.vIEw.VIEw.onClick(VIEw.java:3031)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.vIEw.VIEw.performClick(VIEw.java:3511)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.Widget.Compoundbutton.performClick(Compoundbutton.java:100)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.vIEw.VIEw$PerformClick.run(VIEw.java:14105)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.os.Handler.handleCallback(Handler.java:605)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.os.Handler.dispatchMessage(Handler.java:92)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.os.Looper.loop(Looper.java:137)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.app.ActivityThread.main(ActivityThread.java:4424)05-31 11:09:36.053: E/AndroIDRuntime(26969): at java.lang.reflect.Method.invokeNative(Native Method)05-31 11:09:36.053: E/AndroIDRuntime(26969): at java.lang.reflect.Method.invoke(Method.java:511)05-31 11:09:36.053: E/AndroIDRuntime(26969): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:812)05-31 11:09:36.053: E/AndroIDRuntime(26969): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:579)05-31 11:09:36.053: E/AndroIDRuntime(26969): at dalvik.system.NativeStart.main(Native Method)05-31 11:09:36.053: E/AndroIDRuntime(26969): Caused by: java.lang.NoSuchMethodException: onRadiobuttonClicked [class androID.vIEw.VIEw]05-31 11:09:36.053: E/AndroIDRuntime(26969): at java.lang.class.getConstructorOrMethod(Class.java:460)05-31 11:09:36.053: E/AndroIDRuntime(26969): at java.lang.class.getmethod(Class.java:915)05-31 11:09:36.053: E/AndroIDRuntime(26969): at androID.vIEw.VIEw.onClick(VIEw.java:3024)05-31 11:09:36.053: E/AndroIDRuntime(26969): ... 12 more05-31 11:27:02.010: I/Adreno200-EGLSUB(27793): <ConfigWindowMatch:2081>: Format RGBA_8888.05-31 11:27:02.020: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x509ca000 size:6103040 offset:5488640 fd:5505-31 11:27:02.160: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x511ba000 size:614400 offset:0 fd:5805-31 11:27:05.053: I/Adreno200-EGLSUB(27793): <ConfigWindowMatch:2081>: Format RGBA_8888.05-31 11:27:05.053: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x51467000 size:3645440 offset:3031040 fd:6105-31 11:27:05.143: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x51855000 size:4874240 offset:4259840 fd:7005-31 11:27:05.163: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x51cfb000 size:6758400 offset:6717440 fd:7305-31 11:27:05.183: D/memalloc(27793): /dev/pmem: UnmapPing buffer base:0x509ca000 size:6103040 offset:548864005-31 11:27:05.183: D/memalloc(27793): /dev/pmem: UnmapPing buffer base:0x511ba000 size:614400 offset:005-31 11:27:06.944: D/memalloc(27793): /dev/pmem: UnmapPing buffer base:0x51cfb000 size:6758400 offset:671744005-31 11:27:07.705: D/memalloc(27793): /dev/pmem: Mapped buffer base:0x508ca000 size:614400 offset:0 fd:5205-31 11:27:08.005: W/dalvikvm(27793): threadID=1: thread exiting with uncaught exception (group=0x40a641f8)05-31 11:27:08.005: E/AndroIDRuntime(27793): FATAL EXCEPTION: main05-31 11:27:08.005: E/AndroIDRuntime(27793): java.lang.IllegalStateException: Could not find a method onRadiobuttonClicked(VIEw) in the activity class com.example.ringtones.MainActivity for onClick handler on vIEw class androID.Widget.Radiobutton with ID 'ringtone_button_1'05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.vIEw.VIEw.onClick(VIEw.java:3031)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.vIEw.VIEw.performClick(VIEw.java:3511)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.Widget.Compoundbutton.performClick(Compoundbutton.java:100)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.vIEw.VIEw$PerformClick.run(VIEw.java:14105)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.os.Handler.handleCallback(Handler.java:605)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.os.Handler.dispatchMessage(Handler.java:92)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.os.Looper.loop(Looper.java:137)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.app.ActivityThread.main(ActivityThread.java:4424)05-31 11:27:08.005: E/AndroIDRuntime(27793): at java.lang.reflect.Method.invokeNative(Native Method)05-31 11:27:08.005: E/AndroIDRuntime(27793): at java.lang.reflect.Method.invoke(Method.java:511)05-31 11:27:08.005: E/AndroIDRuntime(27793): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:812)05-31 11:27:08.005: E/AndroIDRuntime(27793): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:579)05-31 11:27:08.005: E/AndroIDRuntime(27793): at dalvik.system.NativeStart.main(Native Method)05-31 11:27:08.005: E/AndroIDRuntime(27793): Caused by: java.lang.NoSuchMethodException: onRadiobuttonClicked [class androID.vIEw.VIEw]05-31 11:27:08.005: E/AndroIDRuntime(27793): at java.lang.class.getConstructorOrMethod(Class.java:460)05-31 11:27:08.005: E/AndroIDRuntime(27793): at java.lang.class.getmethod(Class.java:915)05-31 11:27:08.005: E/AndroIDRuntime(27793): at androID.vIEw.VIEw.onClick(VIEw.java:3024)05-31 11:27:08.005: E/AndroIDRuntime(27793): ... 12 more解决方法:
从XML中的每个Radiobuttons中删除androID:onClick =“onRadiobuttonClick”.您应该处理在RadioGroup上设置的OnCheckedchangelistener中的Radiobuttons的选择.
如果在选择特定的Radiobutton时需要进行特殊处理,可以在onCheckedChanged回调中使用switch语句 – checkedID参数是所选Radiobutton的androID:ID值(如果清除选择,则为-1).
总结以上是内存溢出为你收集整理的Android广播组onCheckChangedListener崩溃的应用程序全部内容,希望文章能够帮你解决Android广播组onCheckChangedListener崩溃的应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)