为什么onClickListener不做任何事情?

时间:2019-04-07 14:08:19

标签: java android onclicklistener

在学习完教程之后,我确实设置了onClick-Listeners。

现在,我正在尝试制作一个简单的应用程序来收听一个流,但是我的onClickListener却什么也没做。

我在android studio 3.3.2中创建了一个新的非常简单的应用程序,以了解发生了什么。我想这是非常基本的东西。

package com.example.musicplay;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);

        final Button play_button = findViewById(R.id.play_button);
        Log.i("Button found","this one: " + play_button.getText());

        play_button.setOnClickListener(new View.OnClickListener() {

            // The code in this method will be executed when the play button is clicked on.
            @Override
            public void onClick(View view) {

                Toast.makeText(MainActivity.this, "A click happened!", Toast.LENGTH_SHORT).show();

            }
        });

        setContentView(R.layout.activity_main);
    }
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/play_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/play_button"/>

</LinearLayout>

单击按钮时应显示吐司消息,但什么也没有发生。

1 个答案:

答案 0 :(得分:0)

您两次调用setContentView。这将替换第一个调用设置的视图层次结构。删除对setContentView的第二次调用。