IllegalStateException: could not find-Methode insert(View) in ein parent-oder ancestor-Kontext-Klasse android.Unterstützung.v7.- widget.AppCompatButton
Habe ich ins Leben gerufen das Programm im single-Projekt, die Arbeit richtig.
Jedoch, wenn ich kopiert und eingefügt in ein größeres Projekt, gibt mir das Balg Fehler im logcat.
FATAL EXCEPTION: main Process: com.example.alan.mainactivity, PID: 11545 java.lang.IllegalStateException: Could not find method insert(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button' at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:307) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:266)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Könnten Sie bitte teilen activity_main.xml
Ja sicher, ich denke, das problem ist, dass ich nicht Lesen kann, beliebigen text aus second_layout.xml durch Main3Activity.java
Ich konnte nicht noch finden. Im Grunde, dieser Fehler passiert, weil man onClick="insert" in eine layout.xml.. Dann sind Sie mit diesem layout in irgendeiner Aktivität, die nicht über die Methode legen Sie erklärt... In Main3Activity, diese Methode gibt es... Nicht sicher über andere Orte
Ja sicher, ich denke, das problem ist, dass ich nicht Lesen kann, beliebigen text aus second_layout.xml durch Main3Activity.java
Ich konnte nicht noch finden. Im Grunde, dieser Fehler passiert, weil man onClick="insert" in eine layout.xml.. Dann sind Sie mit diesem layout in irgendeiner Aktivität, die nicht über die Methode legen Sie erklärt... In Main3Activity, diese Methode gibt es... Nicht sicher über andere Orte
InformationsquelleAutor Mohammad Ali Nematollahi | 2016-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe den Fehler gefunden.
Layout
second_layout.xml
Sie definiertButton
mitandroid:onClick="insert"
Dieses layout ist enthalten in
activity_user_profile.xml
Diese
activity_user_profile.xml
verwendet wird, inMain2Activity.java
So, das ist das Problem:
"Einfügen-Button" verwendet wird
Main2Activity.java
. Aber diese Klasse hat keine Methodepublic void insert(View view)
So, fügen Sie diese zu Ihrem Main2Activity.java:
Erinnern,
Wenn Sie irgendwelche
onClick
Ereignis in einer layout-Datei (xml), die Sie haben, um die Methode in der parent-Aktivität, verwenden Sie das layout.public void insert(View View) und insertToDatabase(name,add); eingefügt Main2Activity.java
Verwenden Sie second_layout.xml oder activity_user_profile.xml in einer anderen Tätigkeit?
nicht nur activity.xml in MainActivity.java. Main2Activity ist mit activity_user_profile.xml. und Main3Activity ist mit second_layout.xml
Wenn Sie android:onclick-Eigenschaft in der XML müssen Sie implementieren Sie die Methode in der parent-activity.. Wenn Sie möchten, implementieren Sie die Methode innen-Fragment ist, sollte man mit Klick-listener (setOnClickListener(new View.OnClickListener()) anstelle von set über XML.
InformationsquelleAutor W0rmH0le
Ich Stand vor genau dem gleichen Problem. Das Problem war, dass ich den Aufruf einer public-Methode aus der onClick-in meinem xml-layout. Innen, die eine öffentliche Methode, die ich rief eine andere private Methode innerhalb der gleichen Klasse.
Wechselte ich die Klasse von privat zu öffentlich und es funktionierte.
XML-layout:
Klasse:
Änderte ich die display-Methode von private auf public und es hat funktioniert.
InformationsquelleAutor rakesh kumar