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

Java 根据显示的文本更改按钮的操作,java,android,android-mediaplayer,textview,android-button,Java,Android,Android Mediaplayer,Textview,Android Button,我想知道如何根据文本视图中显示的文本更改按钮的操作。我正在使用Android Studio。 我曾尝试使用“if语句”,但似乎不起作用。因此,我希望根据文本视图中显示的文本播放不同的声音 package com.msp.exampleapplication; import android.media.MediaPlayer; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import and


我想知道如何根据文本视图中显示的文本更改按钮的操作。我正在使用Android Studio。 我曾尝试使用“if语句”,但似乎不起作用。因此,我希望根据文本视图中显示的文本播放不同的声音

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();
        }
    }
}
因此,如果文本视图(占位符)的文本是“BMW M4”,那么当点击按钮时,它必须播放R.raw.sound。如果文本视图(占位符)中显示“BMW M5”,则必须播放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();

    }
请参阅本帖: 注释tho中有一个错误,它是
toString()
而不是
toString

,您需要,而不是文本视图本身的引用

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

如果您的if语句检查错误,请像
if(placeholder.getText().toString.equals(“BMW M4”))
那样执行,当我执行此操作时,“toString”变为红色,并说“无法解析符号“toString”?@MSP,toString是一个函数而不是一个属性-这只是一个小错误非常感谢!现在一切正常,非常感谢!