簡體   English   中英

根據顯示的文本更改按鈕的動作

[英]Change action of a button according to text displayed


我想知道如何根據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。 如果TextView(占位符)中顯示“ 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();

    }

請參閱這篇文章: 如何從textview獲取文本注釋中有一個錯誤,即toString()而不是toString

您需要檢查TextView中的文本,而不是TextView本身的引用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM