java - Could not find a method in the activity class android.view.ContextThemeWrapper for onClick handler -
i have problem. using 2 dialog well, 1 dialog on dialog, second dialog crash when try search method. can me?
xml: login-email
<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_password_email" android:id="@+id/login_email_tvforgetpassword" android:layout_margintop="18dp" android:layout_gravity="center_horizontal" android:onclick="openforgetpasswordsend"/> mainactivity.java
public void openforgetpasswordsend(view view){ fragmentmanager fragmentmanager = getfragmentmanager(); loginforgetpassworddialogfragment.show(fragmentmanager,"forget pass"); } loginforgetpassword.java
public class loginforgetpassword extends dialogfragment{ @override public dialog oncreatedialog (bundle savedinstancestate){ // 1. instantiate alertdialog.builder constructor alertdialog.builder builder = new alertdialog.builder(getactivity()); //get layout inflater //layoutinflater inflater = getactivity().getlayoutinflater(); layoutinflater factory = layoutinflater.from(getactivity()); //create dialog dialog dialog = new dialog(getactivity()); //diable title dialog.requestwindowfeature(window.feature_no_title); // inflate , set layout dialog // pass null parent view because going in dialog layout // builder.setview(inflater.inflate(r.layout.login_register, null)); dialog.setcontentview(r.layout.login_forgetpassword); // transparency dialog.getwindow().setbackgrounddrawable(new colordrawable(color.transparent)); // 3. alertdialog create() //return builder.create(); return dialog; } error:
java.lang.illegalstateexception: not find method openforgetpasswordsend(view) in activity class android.view.contextthemewrapper onclick handler on view class android.widget.textview id 'login_email_tvforgetpassword' @ android.view.view$1.onclick(view.java:4209) @ android.view.view.performclick(view.java:5156) @ android.view.view$performclick.run(view.java:20755) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:5832) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1194) caused by: java.lang.nosuchmethodexception: openforgetpasswordsend [class android.view.view] @ java.lang.class.getmethod(class.java:665) @ android.view.view$1.onclick(view.java:4202) at android.view.view.performclick(view.java:5156) at android.view.view$performclick.run(view.java:20755) at android.os.handler.handlecallback(handler.java:739) at android.os.handler.dispatchmessage(handler.java:95) at android.os.looper.loop(looper.java:145) at android.app.activitythread.main(activitythread.java:5832) at java.lang.reflect.method.invoke(native method) at java.lang.reflect.method.invoke(method.java:372) at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) at com.android.internal.os.zygoteinit.main(zygoteinit.java:1194) i appreciated help!
i no expert but, don't set android:onclick="openforgetpasswordsend" it's bad practise set click events in xml layouts.
set click listeners in java. use xml, setup views.
the reason crash might that, method specify in xml has no parameters, in class, method has parameter of type view.
public void openforgetpasswordsend(view view){...}
now, suggest try code below, should fix problem :
remove android:onclick="openforgetpasswordsend" <textview>
i don't see use layout'login-email.xml'. in fragment(i assume it's in fragment), add these lines in :
public class myfragment extends fragment { private textview mytextview; @override protected void oncreate(bundle savedinstancestate) { mytextview = (textview)findviewbyid(r.id.login_email_tvforgetpassword); mytextview.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { openforgetpasswordsend(view); } }); }
Comments
Post a Comment