Я работаю над проблемой, которая поставила меня в тупик. Я пытаюсь настроить кнопку воспроизведения, при нажатии которой изображение «воспроизведения» меняется на изображение «паузы» и обратно, а также изменяется текст метки с «воспроизведения» на «пауза», а затем снова возвращается. Я не могу понять код правильно, и мне было интересно, если у вас есть какие-либо предложения? Вот мой код:
Это файл activity_read.xml. Я пытался превратить идентификатор кнопки в "play_pause"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.yhussein.myapplication.ReadActivity"
android:background="#fcfcfc">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/card_image_height"
android:background="#2d2d2d"
android:id="@+id/book_img_id"
android:scaleType="centerCrop"
android:contentDescription="@string/todo" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/play_pause"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_play_arrow_black_24dp"
android:text="@string/play"
android:textColor="?attr/colorPrimary" />
<Button
android:id="@+id/lang"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_language_black_24dp"
android:text="@string/lang"
android:textColor="?attr/colorPrimary" />
<Button
android:id="@+id/close"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_close_black_24dp"
android:text="@string/close"
android:textColor="?attr/colorPrimary" />
</LinearLayout>
<TextView
android:id="@+id/txtDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/book_title"
android:textSize="18sp"
android:textStyle="bold"
tools:text="Book Title" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
Затем я попытался настроить "play_pause setOnClickListener" в ReadActivity. Код, который я пытался настроить, выделен жирным шрифтом [надеюсь]:
play_pause.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
play_pause.setVisibility(View.GONE);
lang.setVisibility(View.GONE);
close.setVisibility(View.GONE);
bookmark++;
if (bookmark > st.size() - 1) {
bookmark = st.size() - 1;
}
section++;
if (section > st.size() - 1) {
section = st.size() - 1;
}
img.setImageResource(pixId);
/* tvdescription.setText(st.get(bookmark));*/
final MediaPlayer mp = MediaPlayer.create(getApplicationContext(), soundId);
mp.start();
**//Pauses media player when the button is clicked ; changes the drawable and the label text
if(mp.isPlaying()){
mp.pause();
play_pause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
play_pause.setText(R.string.Pause);
} else {
mp.start();
play_pause.setBackgroundResource(R.drawable.ic_play_arrow_black_24dp);
play_pause.setText(R.string.Play);
}**
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
finish(); // finish current activity
Toast.makeText(getApplicationContext(), "End of sound!", Toast.LENGTH_SHORT).show();
}
});
}
});
Когда программа запускается, вот что происходит, когда я нажимаю кнопку «Play»:
введите описание изображения здесь
Кто-нибудь знает, что я делаю неправильно?