2016-08-26 4 views
0

в моем приложении можно получить список книг, сохраненных на сервере. Я показываю книги в Listview, и теперь я пытаюсь предоставить пользователям своего приложения подробный обзор выбранной (по onListItemClick) книге с именем, выпущенным, автором, ... Но в этом случае я не знаю, как переместите выбранную книгу и ее данные в мою BookDetailActivity. Я не могу справиться с карты BackendlessCollection в onListItemClick ...Использование onListItemClick с Backendless

Это мой BookAdapter:

public BooksAdapter(Context context, int resource, List<Books> book_list) 
{ 
    super(context, resource, book_list); 
    mResource = resource; 
    mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 
    View view = convertView == null ? mInflater.inflate(mResource, parent, false) : convertView;  
    TextView booksNameView = (TextView) view.findViewById(R.id.bookName); 
    TextView booksReleaseView = (TextView) view.findViewById(R.id.bookRelease); 
    TextView booksAuthorView = (TextView) view.findViewById(R.id.bookAuthor); 
    Books item = getItem(position); 
    booksNameView.setText(item.getName()); 
    objectIdView.setText(item.getObjectId()); 
    booksReleaseView.setText(item.getRelease()); 
    booksAuthorView.setText(item.getAuthor()); 
    return view; 
} 

Это основной код моего BooksListActivity:

//inside the onCreate 
adapter = new BooksAdapter(BooksListActivity.this, R.layout.list_item_books, totalBooks); 
setListAdapter(adapter); 

Backendless.Data.of(Books.class).find(query, new LoadingCallback<BackendlessCollection<Books>>(this , getString(R.string.loading_books), true) 
    { 
     @Override 
     public void handleResponse(BackendlessCollection<Books> booksBackendlessCollection) 
     { book_list = booksBackendlessCollection; 
      addMoreItems(booksBackendlessCollection); 
      super.handleResponse(booksBackendlessCollection);} 
    }); 
    ListView list = (ListView) findViewById(android.R.id.list); 

//outside the onCreate 
@Override 
protected void onListItemClick(ListView l, View v, int position, long ObjectId) { 
    super.onListItemClick(l, v, position, ObjectId); 
    Intent i = new Intent(this, BookDetailActivity.class); 
    startActivity(i); 
} 

Наконец я показал бы детали выбранной книги в моей BookDetailActivity как типичные текстовые элементы.

Надеюсь, вы можете мне помочь! Большое спасибо заранее!

ответ

0

Вы можете передать данные в следующее действие с помощью дополнительных опций Intent. Все, что вам нужно сделать, это использовать intent.putExtra() для передачи данных.

В вашем случае, внутри onListItemClick здесь то, что вам нужно сделать:

Intent i = new Intent(this, BookDetailActivity.class); 
Book book = totalBooks.get(i); 
i.putExtra("title", book.title); 
i.putExtra("content", book.content); 
startActivity(i); 

И в конце концов в BookDetailActivity деятельности, вы можете прочитать данные по телефону getIntent().getExtras()

Или,

вы можете передать весь объект Book с помощью Bundle:

Intent i = new Intent(this, BookDetailActivity.class); 
Book book = totalBooks.get(i); 
Bundle bundle = new Bundle(); 
bundle.putSerializable("book", book); 
i.putExtras(bundle); 
startActivity(i); 
Смежные вопросы