[英]How do you make a label change the displayed text on a specific action in Java?
[英]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.