在 Backendless 中使用 onListItemClick
Using onListItemClick with Backendless
在我的应用程序中,可以检索保存在服务器上的图书列表。我在 Listview 中显示书籍,现在我尝试向我的应用程序的用户提供所选(通过 onListItemClick)书籍的详细概述,包括名称、发布日期、作者......但在这种情况下我不知道如何将所选书籍及其数据传输到我的 BookDetailActivity。我无法处理 onListItemClick 中的 Map BackendlessCollection...
这是我的 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 中显示所选书籍的详细信息作为典型的 TextViews。
我真的希望你能帮助我!
非常感谢!
您可以使用 Intent extras 将数据传递给下一个 activity。您需要做的就是使用 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
activity中,可以通过调用getIntent().getExtras()
读取数据
或者,
您可以使用 Bundle 传递整个 Book
对象:
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);
在我的应用程序中,可以检索保存在服务器上的图书列表。我在 Listview 中显示书籍,现在我尝试向我的应用程序的用户提供所选(通过 onListItemClick)书籍的详细概述,包括名称、发布日期、作者......但在这种情况下我不知道如何将所选书籍及其数据传输到我的 BookDetailActivity。我无法处理 onListItemClick 中的 Map BackendlessCollection...
这是我的 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 中显示所选书籍的详细信息作为典型的 TextViews。
我真的希望你能帮助我! 非常感谢!
您可以使用 Intent extras 将数据传递给下一个 activity。您需要做的就是使用 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
activity中,可以通过调用getIntent().getExtras()
或者,
您可以使用 Bundle 传递整个 Book
对象:
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);