如何为每本电子书创建单独的活动?

时间:2018-05-21 10:08:43

标签: java android gridview cardview

我使用以下源代码练习。但是我想为单独的书籍创建单独的活动。我可以为这个应用程序添加更多书籍。但是我无法为每本书创建单独的活动。这意味着任何人都可以点击任何书籍来打开它的活动(让我们想想开放的pdf版本)这个书的视图。请帮我创建它。我想要完整的代码。因为我是一个大人物...谢谢...你可以通过Github编辑它.....

javadoc

https://github.com/MrMarkSteven/Book_Menu

2 个答案:

答案 0 :(得分:1)

您可以创建一个BookDetailActivity,就像您在源代码中创建的Serializable一样。

然后你必须在你的POJO课程中实现Book.java。即。 public class Book implements Serializable只需撰写Book,然后您就可以通过RecyclerViewAdapterBookDetailActivity对象从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 ..

        }
    });
相关问题