根据显示的文本更改按钮的操作

Change action of a button according to text displayed


我想知道如何根据 TextView 中显示的文本更改按钮的操作。我正在使用 Android Studio。

我曾尝试使用 'if statement',但这似乎不起作用。所以,我想要根据 TextView 中显示的文本播放不同的声音。

package com.msp.exampleapplication;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class PrimaryClass extends AppCompatActivity {

    TextView placeholder;
    Button playsound_button;
    MediaPlayer mySound;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.primary_layout);

        placeholder = (TextView) findViewById(R.id.placeholder);
        playsound_button = (Button) findViewById(R.id.playsound_button);

        placeholder.setText(getIntent().getStringExtra("message"));

        }

    public void playSound(View view) {

        if (placeholder.equals("BMW M4")) {

            mySound = MediaPlayer.create(this, R.raw.sound);
            mySound.start();
        }

        else if (placeholder.equals("BMW M5")) {

            mySound = MediaPlayer.create(this, R.raw.sound2);
            mySound.start();
        }
    }
}

所以,如果TextView(占位符)的文本是"BMW M4",那么当按钮被点击时,它必须播放R.raw.sound。如果 "BMW M5" 显示在 TextView(占位符)中,则 R.id.sound2 必须播放。
但正如我所说,我尝试使用 if 语句,但当我单击按钮时,根本没有声音播放。

是的,正如@Akshay Bhat 'AB' 所说,您必须这样做:

   if (placeholder.getText().toString().equals("BMW M4")) {

        mySound = MediaPlayer.create(this, R.raw.sound);
        mySound.start();
    }

    else if (placeholder.getText().toString().equals("BMW M5")) {

        mySound = MediaPlayer.create(this, R.raw.sound2);
        mySound.start();

    }

参考这个post:how to get text from textview 评论中有一个错误,它是 toString() 而不是 toString

您需要 check the text in the TextView 而不是 TextView 本身的引用。

   placeholder.getText().toString().equals("BMW M4")