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

时间:2016-12-30 13:36:25

标签: java android android-mediaplayer textview android-button


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

我试图使用' if语句'但这似乎不起作用。所以,我希望根据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。如果"宝马M5"显示在TextView(占位符)中,然后R.id.sound2必须播放。
但正如我所说,我试图使用if语句,当我点击按钮时,根本没有声音播放。

2 个答案:

答案 0 :(得分:1)

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

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.domainname.com%{REQUEST_URI} [L,R=301]

参考这篇文章:how to get text from textview 注释中有一个错误,即 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(); } 而不是toString()

答案 1 :(得分:1)

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

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