Я пытаюсь настроить прослушиватель onClick, в котором у этого слушателя уже есть кнопка.Цель состоит в том, чтобы предоставить второй способ доступа к намерению (в данном случае класс «ReadActivity». Примером этого является
Вот мой код:
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.tv_book_title.setText(mData.get(position).getBookTitle());
holder.tv_book_author.setText("by " + mData.get(position).getBookAuthor());
holder.img_book_thumbnail.setImageResource(mData.get(position).getBookId());
holder.actionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, ReadActivity.class);
// passing data to the book activity
intent.putExtra("Id", mData.get(position).getPhotoId());
intent.putExtra("Title", mData.get(position).getBookTitle());
intent.putExtra("Author", mData.get(position).getBookAuthor());
intent.putExtra("Description", mData.get(position).getContentUrl());
intent.putExtra("Thumbnail", mData.get(position).getBookId());
// start the activity
mContext.startActivity(intent);
}
});
И этоmy cardview_item xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 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:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="@dimen/card_height"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/md_keylines"
android:layout_marginLeft="@dimen/md_keylines"
android:layout_marginRight="@dimen/md_keylines"
android:foreground="?attr/selectableItemBackground">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/book_img_id"
**android:onClick="imageClick"**
android:layout_width="match_parent"
android:layout_height="@dimen/card_image_height"
android:scaleType="centerCrop"
android:contentDescription="@string/todo" />
<TextView
android:id="@+id/book_title_id"
android:layout_width="match_parent"
android:layout_height="@dimen/card_title_height"
android:layout_alignBottom="@+id/book_img_id"
android:layout_marginStart="@dimen/md_keylines"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:textColor="@color/white" />
<TextView
android:id="@+id/book_author_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/book_img_id"
android:layout_marginLeft="@dimen/md_keylines"
android:layout_marginTop="@dimen/md_keylines"
android:layout_marginBottom="@dimen/md_keylines"
android:layout_marginRight="@dimen/md_keylines"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/dark_grey"
android:textSize="@dimen/article_subheading" />
<Button
android:id="@+id/action_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/book_author_id"
style="?android:attr/borderlessButtonStyle"
android:textColor="?attr/colorPrimary"
android:text="@string/read" />
</RelativeLayout>
</android.support.v7.widget.CardView>
В xml я попытался установить строку onClick, но я не уверен, как настроить прослушиватель onClick. Есть ли способ сделать это, не затрагивая исходный код? Или было бы проще скопировать в actionButton.setOnClickListener и просто изменить настройку держателя на миниатюру?