Может ли кто-нибудь помочь мне разобраться, где я здесь не так. На кнопке нажмите медиаплеер, играя один из mfiles в случайном порядке, и я пытаюсь установить текстовое представление в зависимости от того, какой файл был воспроизведен. В настоящее время команды setText if соответствуют только воспроизведению звука в два раза. На самом деле не знаю, где я здесь ошибся.Текст, если оператор не работает
private final int SOUND_CLIPS = 3;
private int mfile[] = new int[SOUND_CLIPS];
private Random rnd = new Random();
MediaPlayer mpButtonOne;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mfile[0] = R.raw.one;
mfile[1] = R.raw.two;
mfile[2] = R.raw.three;
//Button setup
Button bOne = (Button) findViewById(R.id.button1);
bOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final TextView textOne = (TextView)findViewById(R.id.textView1);
mpButtonOne = MediaPlayer.create(MainActivity.this, mfile[rnd.nextInt(SOUND_CLIPS)]);
if (mpButtonOne==null){
//display a Toast message here
return;
}
mpButtonOne.start();
if (mfile[rnd.nextInt(SOUND_CLIPS)] == mfile[0]){
textOne.setText("one");
}
if (mfile[rnd.nextInt(SOUND_CLIPS)] == mfile[1]){
textOne.setText("two");
}
if (mfile[rnd.nextInt(SOUND_CLIPS)] == mfile[2]){
textOne.setText("three");
}
mpButtonOne.setOnCompletionListener(new soundListener1());
{
}
Так что прояснить меня проблема в том, что SetText соответствует только звук иногда, а не на каждый клик. В остальное время он отображает неправильный текст для неправильного звука.
Это помогло мне разобраться в проблеме, спасибо много. Что-то еще, что я хотел сделать, это использовать песню int в другом onClick, однако переменная должна быть локальной для этого оригинального onClick, как я могу сделать общедоступную, которую я могу использовать в любом месте, а не только в исходном onClick. – user2756111
Вам нужно объявить его как переменную-член, чтобы иметь класс, а не только локальную область. Я редактировал пример. Дайте мне знать, если это не имеет смысла. – codeMagic
На самом деле я не думал, что я пытаюсь это сделать, так это получить кнопку повтора, чтобы получить песню, которую только что сыграли, и onClick снова играет тот же самый. Установка его как int-песни; и его инициализация просто создает другую случайную песню для воспроизведения. Как мне поступить, как вернуть значение песни после ее воспроизведения, чтобы я мог снова воспроизвести ее с помощью другого onClick. Спасибо за вашу помощь, кстати, кстати. – user2756111