Как создать отдельную активность для каждой книги? - PullRequest
0 голосов
/ 21 мая 2018

Я практиковался с приведенным ниже исходным кодом.Но я хочу создать отдельные действия для отдельных книг. Я могу добавить больше книг в это приложение. Но я не могу создать отдельные действия для каждой книги. Это означает, что любой, кто щелкнет по любой книге, должен открыть ее действие (давайте подумаем, откройте PDF-версиювид книги). Пожалуйста, помогите мне создать его. Я хочу полный код. Потому что я большой новичок ... Спасибо ... Вы можете редактировать его через Github .....

https://github.com/MrMarkSteven/Book_Menu

см. Изображения здесь

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Вы можете создать BookDetailActivity как тот, который вы создали в своем исходном коде.

Затем вы должны реализовать Serializable в своем классе POJO.то есть.Book.java Просто напишите public class Book implements Serializable, и тогда вы сможете передать один Book объект из вашего RecyclerViewAdapter в BookDetailActivity через Intent.

Вы можете сделать это, используя следующиекод в holder.cardView.setOnClickListener onClick:

 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 работает.

0 голосов
/ 21 мая 2018

Измените метод RecyclerViewAdapter.java при нажатии на метод cardView.

 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 ..

        }
    });
...