我使用以下源代码练习。但是我想为单独的书籍创建单独的活动。我可以为这个应用程序添加更多书籍。但是我无法为每本书创建单独的活动。这意味着任何人都可以点击任何书籍来打开它的活动(让我们想想开放的pdf版本)这个书的视图。请帮我创建它。我想要完整的代码。因为我是一个大人物...谢谢...你可以通过Github编辑它.....
答案 0 :(得分:1)
您可以创建一个BookDetailActivity
,就像您在源代码中创建的Serializable
一样。
然后你必须在你的POJO课程中实现Book.java
。即。 public class Book implements Serializable
只需撰写Book
,然后您就可以通过RecyclerViewAdapter
将BookDetailActivity
对象从Intent
传递到holder.cardView.setOnClickListener
。< / p>
您可以在onClick
的{{1}}中使用以下代码来执行此操作:
Intent intent = new Intent(mContext, BookDetailActivity.class);
intent.putExtra("Book", mData.get(position)); //mData is a list of books and mData.get(position) will give a Book object.
mContext.startActivity(intent);
在你BookDetailActivity
中使用以下代码从意图中获取对象。
// To retrieve object in second Activity
if (getIntent().hasExtra("Book")){
Book book= (Book) getIntent().getSerializableExtra("Book");
Log.d(TAG, " Got serialized object "+ book.getTitle());
/*
Then you can get what you want from the Book object and set to textviews or other stuffs.
*/
}
我假设您的holder.cardView.setOnClickListener
正在运作。
答案 1 :(得分:0)
在cardView的click方法上更改RecyclerViewAdapter.java。
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mData.get(position).getTitle().equalsIgnoreCase("The Vegitarian")){
// move to another activity
}
else if(mData.get(position).getTitle().equalsIgnoreCase("The Wild Robot")){
// move to another activity
}
// continue ..
}
});