如何解决Android-如何通过按钮标签获取资源?
我在“活动”中有8个按钮,在res/raw
目录中有8个小音频。单击一个按钮后,应用程序将播放与该特定按钮关联的音频。我将每个音频命名为与关联按钮的标签相同/相似。我希望活动中只有一种方法可以解决所有情况。
这是我到目前为止所拥有的:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void playPhrase(View view){
if(view.getTag().toString().equals("doYouSpeak")){
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.doyouspeakenglish);
mediaPlayer.start();
}
else if(view.getTag().toString().equals("goodEvening")){
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.goodevening);
mediaPlayer.start();
}
// the other 6 cases
}
}
有没有一种方法可以使用关联的按钮标签(或ID或其他方式)访问音频,而无需整个if / else语句?像这样的东西:
public void playPhrase(View view){
String tag = view.getTag().toString();
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.tag);
mediaPlayer.start();
}
解决方法
您可以使用getIdentifier()方法通过字符串名称获取ID。
String tag = view.getTag().toString();
Int id = getResources().getIdentifier(tag,"raw",getPackageName());
MediaPlayer mediaPlayer = MediaPlayer.create(this,id);
mediaPlayer.start();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。