2017-04-15 80 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

相关问题