gewusst wie: löschen Sie die radio-Gruppe und die Nutzung oncheckchanged Hörer an der gleichen Zeit?
Mein Dilemma ist, dass ich verwenden möchten
radioGrp.clearCheck();
Nach einigen Forschung, fand ich, dass die Art und Weise, es zu tun ist, um es wie
selectedid = radioGrp.getCheckedRadioButtonId();
if (selectedid > 0) {
radioGrp.clearCheck();
}
dies ist, weil einige das Problem, wo die getCheckid kommen könnte eine negative Zahl oder so etwas in der Art. Jedoch, wie kann ich verwenden, und die folgenden in der gleichen Aktivität. Die oncheckedchangedlistener hat seine eigene, int id, dass ich glaube, dass ist das verursachen Problem....
radioGrp.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
.....
ich regelmäßig diese Fehlermeldung erhalten
10-04 08:44:03.728: E/AndroidRuntime(420): FATAL EXCEPTION: main
10-04 08:44:03.728: E/AndroidRuntime(420): java.lang.NullPointerException
10-04 08:44:03.728: E/AndroidRuntime(420): at com.mangodeveloper.mcathomie.McatActivityGame$1.onCheckedChanged(McatActivityGame.java:93)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.widget.RadioGroup.check(RadioGroup.java:166)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.widget.RadioGroup.clearCheck(RadioGroup.java:205)
10-04 08:44:03.728: E/AndroidRuntime(420): at com.mangodeveloper.mcathomie.McatActivityGame.fillQuestions(McatActivityGame.java:83)
10-04 08:44:03.728: E/AndroidRuntime(420): at com.mangodeveloper.mcathomie.McatActivityGame.access$8(McatActivityGame.java:51)
10-04 08:44:03.728: E/AndroidRuntime(420): at com.mangodeveloper.mcathomie.McatActivityGame$2.onClick(McatActivityGame.java:128)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.view.View.performClick(View.java:2485)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.view.View$PerformClick.run(View.java:9080)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.os.Handler.handleCallback(Handler.java:587)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.os.Looper.loop(Looper.java:123)
10-04 08:44:03.728: E/AndroidRuntime(420): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-04 08:44:03.728: E/AndroidRuntime(420): at java.lang.reflect.Method.invokeNative(Native Method)
10-04 08:44:03.728: E/AndroidRuntime(420): at java.lang.reflect.Method.invoke(Method.java:507)
10-04 08:44:03.728: E/AndroidRuntime(420): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-04 08:44:03.728: E/AndroidRuntime(420): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-04 08:44:03.728: E/AndroidRuntime(420): at dalvik.system.NativeStart.main(Native Method)
InformationsquelleAutor mango | 2012-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay gut ich war in der Lage, herauszufinden, einen work-around, Elementare, wie es ist - ich bin nur peinlich, dass ich nicht glaube, dass der es früher. Grundsätzlich habe ich nur rufen Sie die clear-radiogroup Befehl, BEVOR ich den check geändert Zuhörer. Aber wenn Ihre Aktivität hat diese in einer Schleife, wie in meinem Fall, dann müssen Sie die setOnCheckedChangeListener auf null, bevor der Befehl "löschen" kommt wieder. Hier ist mein Skelett von der Lösung mit den wichtigen teilen. Es sollte funktionieren, " bis etwas besseres kommt.
RadioGroup
Klasse, und ändern Sie dieclearCheck
Methode, so dass es nicht trigger den Hörer.Danke für die Idee! Ich habe ständig geplagt von radio-buttons und Checkboxen, etc. das Feuer unerwünschte Ereignisse, wenn Sie programmgesteuert. Nächste mal werde ich kämpfen werd ich es schaffen, alternative set/clear/toggle-Methoden, nicht rufen die Zuhörer.
InformationsquelleAutor mango