java - Android could not find method in Activity class -


i'm following instructions on android developers site creating first app. first few platform tests worked fine me, goes south when trying use intent pass message 1 activity another. specifically, when press text field enter input, app crashes (see intended behavior @ https://developer.android.com/training/basics/firstapp/starting-activity.html#displaymessage).

a problem seems same mine reported here on year ago, no satisfactory answer: could not find method sendmessage(view) in activity class

a couple things not problem:

  • extends actionbaractivity -- know deprecated worked fine before bug.
  • hardcoded onclick in xml -- have heard not best practice, doubt official android tutorial instruct if didn't @ least work.

my own basic , ill-informed diagnosis though wrote method sendmessage(view view) in myactivity.java, runtime doesn't think it's there. lost why. here's code:

myactivity.java:

package org.example.myfirstapp;   import android.content.intent; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.edittext;   public class myactivity extends actionbaractivity {     public final static string extra_message = "org.example.myfirstapp.message";      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_my);     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_my, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     }      /** called when user clicks send button */     public void sendmessage(view view) {         intent intent = new intent(this, displaymessageactivity.class);         edittext edittext = (edittext) findviewbyid(r.id.edit_message);         string message = edittext.gettext().tostring();         intent.putextra(extra_message, message);         startactivity(intent);     } } 

activity_my.xml:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">  <edittext android:id="@+id/edit_message"     android:layout_width="0dp"     android:layout_height="wrap_content"     android:layout_weight="1"     android:hint="@string/edit_message"     android:onclick="sendmessage"/>  <button     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/button_send"/>  </linearlayout> 

displaymessageactivity.java:

package org.example.myfirstapp;  import android.content.intent; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.textview;   public class displaymessageactivity extends actionbaractivity {      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         //get message intent         intent intent = getintent();         string message = intent.getstringextra(myactivity.extra_message);         //create text view         textview textview = new textview(this);         textview.settextsize(40);         textview.settext(message);         //set text view activity layout         setcontentview(textview);     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     } } 

crash output:

    --------- beginning of crash 05-30 11:41:37.734  23198-23198/? e/androidruntime﹕ fatal exception: main     process: org.benwiley.myfirstapp, pid: 23198     java.lang.illegalstateexception: not find method sendmessage(view) in activity class android.support.v7.internal.widget.tintcontextwrapper onclick handler on view class android.support.v7.widget.appcompatedittext id 'edit_message'             @ android.view.view$1.onclick(view.java:4007)             @ android.view.view.performclick(view.java:4780)             @ android.view.view$performclick.run(view.java:19866)             @ android.os.handler.handlecallback(handler.java:739)             @ android.os.handler.dispatchmessage(handler.java:95)             @ android.os.looper.loop(looper.java:135)             @ android.app.activitythread.main(activitythread.java:5254)             @ java.lang.reflect.method.invoke(native method)             @ java.lang.reflect.method.invoke(method.java:372)             @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)             @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698)      caused by: java.lang.nosuchmethodexception: sendmessage [class android.view.view]             @ java.lang.class.getmethod(class.java:664)             @ java.lang.class.getmethod(class.java:643)             @ android.view.view$1.onclick(view.java:4000)             at android.view.view.performclick(view.java:4780)             at android.view.view$performclick.run(view.java:19866)             at android.os.handler.handlecallback(handler.java:739)             at android.os.handler.dispatchmessage(handler.java:95)             at android.os.looper.loop(looper.java:135)             at android.app.activitythread.main(activitythread.java:5254)             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:903)             at com.android.internal.os.zygoteinit.main(zygoteinit.java:698) 

thanks in advance. i'm pretty lost. p.s. using api 22 build tools 22.0.1.

i think have many mistakes

activity_my.xml

<button android:id="@+id/btnsend" android:layout_width="wrap_content"  android:layout_height="wrap_content"> 

in myactivity.java:

button button = (button).findviewbyid(r.id.btnsend); button.setonclicklistener(new view.onclicklistener(){  public void onclick(view v) {  edittext edittext = (edittext) findviewbyid(r.id.edit_message);  sendmessage(v);} }); 

in androidmanifest.xml :

<activity  android:name=".displaymessageactivity" android:label="@string/title_activity_display_message">  

Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -