2015-07-01 69 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