2015-07-01 75 views
0

Android新手,并不知道我在这里做错了什么。当我尝试在模拟器中运行以下代码时,我设法通过按下Login按钮从MainActivity.java到Contacts.java。试图从Contacts.java按下发送按钮的应用程序崩溃移到Success.java然而,当,任何帮助将不胜感激< 3:Android类错误 - 将屏幕移动到屏幕

MainActivity.java

public class MainActivity extends ActionBarActivity { 

    Button mLogin; 
    List<ContactList> Contacts = new ArrayList<ContactList>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     addListenerOnButton(); 
    } 

    private void addListenerOnButton() { 

     final Context context = this; 

     mLogin = (Button)findViewById(R.id.buttonLogin); 
     mLogin.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       Intent intent = new Intent(context, Contacts.class); 
       startActivity(intent); 
      } 
     }); 

    } 
} 

Contacts.java

public class Contacts extends MainActivity { 

    private Button mSend; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.contacts); 

     Context Toastie = getApplicationContext(); 
     CharSequence text = "Welcome!"; 
     int duration = Toast.LENGTH_SHORT; 

     Toast toast = Toast.makeText(Toastie, text, duration); 
     toast.show(); 

    } 

    private void addListenerOnButton() { 

     final Context context = this; 

     mSend = (Button)findViewById(R.id.buttonSend); 
     mSend.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg1) { 
       Intent intent = new Intent(context, Success.class); 
       startActivity(intent); 

      } 
     }); 
    } 

Success.java

public class Success extends Contacts { 

    private Button mRepeat; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.success); 

     Context Toaster = getApplicationContext(); 
     CharSequence text = "Congratulations!!!!"; 
     int duration = Toast.LENGTH_SHORT; 

     Toast toast = Toast.makeText(Toaster, text, duration); 
     toast.show(); 
    } 

logcat的(在这一切TUR NS红色):

java.lang.IllegalStateException: Could not find a method Send(View) in the activity class com.sharansoni.www.messenger.Contacts for onClick handler on view class android.support.v7.widget.AppCompatButton with id 'buttonSend' 
      at android.view.View$1.onClick(View.java:4007) 
      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:5257) 
      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) 
    Caused by: java.lang.NoSuchMethodException: Send [class android.view.View] 
      at java.lang.Class.getMethod(Class.java:664) 
      at java.lang.Class.getMethod(Class.java:643) 
      at 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:5257) 
            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) 
+0

添加您的日志猫跟踪 – once2go

+0

@ once2go确定一秒 – Sharan

+0

[在onClick中设置xml](http://stackoverflow.com/questions/18319711/android-eclipse-which-is-the-best-way-to-添加一个按钮/ 18319759#18319759) – codeMagic

回答

0

Contacts.class

R.layout.contacts in this layout find your button(R.id.buttonSend) and in xml remove 
android:onClick=&... 

Context Toaster = getApplicationContext(); - 在所有未来

Toast toast = Toast.makeText(this, text, duration); 

也不要使用变量大写命名类尝试使用这就是错误的 。

+0

一旦我删除了“android:onClick =”发送“在xml按钮不再工作? – Sharan

+0

U可以通过2种方式描述你的按钮功能: 1.在xml android:onClick = “YourMethod” - 在这种情况下,在你的活动中,你必须(重要的)重写这个方法,我的意思是在Activity.class中添加方法public void YourMethod(){//这里描述的功能} 2.使用界面或视图。在onCreate方法中设置按钮并设置clickListener,就像你做的那样:mSend =(Button)findViewById(R.id.buttonSend); mSend.setOnClickListener({ }); – once2go