当我按下Button以启动Toast时,Java-app关闭。但为什么呢?

时间:2017-04-15 17:33:33

标签: java android button toast

当你按下按钮时,我做了非常简单的java吐司。但是当我在手机上运行它时,它会停止应用程序并退出而不会出现错误。我做错了什么?

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>

2 个答案:

答案 0 :(得分:0)

尝试删除xml文件中android:onClick中的“(MainActivity)”。

答案 1 :(得分:0)

简单:xml中的android:onClick="buttonWasClicked"应该可以解决问题。 或者在OnCreate方法中,您可以将监听器分配给您的按钮,如下所示:

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

在这种情况下,您从xml中删除android:OnClick。 并且您可以更好地执行事件:从方法按钮中删除参数查看按钮单击此按钮,这允许您不要声明您的变量最终。