2017-04-15 38 views
-2

我做了非常簡單的java烤麪包,當你按下按鈕時出現。但是當我在手機上運行它時,它會停止應用程序並退出而不會出現錯誤。我做錯了什麼?當我按下按鈕開始吐司時,Java-app關閉。但爲什麼?

MainActivity:

package com.example.ras.tests; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


    } 

    public void buttonWasClicked(View Button) { 
     Toast.makeText(this , "Button wurde geklickt!" , Toast.LENGTH_SHORT).show(); 
    } 
} 

按鈕:

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button" 
    android:layout_marginTop="16dp" 
    app:layout_constraintTop_toTopOf="@+id/activity_main" 
    android:layout_marginStart="16dp" 
    app:layout_constraintLeft_toLeftOf="@+id/activity_main" 
    android:layout_marginLeft="16dp" 
    android:onClick="buttonWasClicked (MainActivity)" 
    android:visibility="visible" /> 
</android.support.constraint.ConstraintLayout> 
+1

請編輯您的問題並添加logcat。 –

+1

有關「爲什麼?」的問題是不是一個好問題請閱讀[如何問好問題](https://stackoverflow.com/help/how-to-ask) – Omore

回答

0

簡單:android:onClick="buttonWasClicked"在你的XML應該做的伎倆。 或者在你的OnCreate方法,你可以這樣分配監聽到你的按鈕:

final Button button = (Button)findViewById(R.id.button); 
button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       buttonWasClicked(button); 
      } 
     }); 

在這種情況下,你刪除Android:從你的XML的OnClick。 而且你可以更好地做到這一點:從方法buttonWasClicked中刪除參數View按鈕,這允許你不聲明你的變量final。

+0

非常感謝你! – ramsanx

0

嘗試刪除 「(MainActivity)」 在Android:在XML文件中的onClick。

+0

非常感謝你!它的工作 – ramsanx

相關問題