根据显示的文本更改按钮的操作
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")
我想知道如何根据 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")