我正在开发一个购物应用程序,在那个应用程序中,我需要列出卖家上传的产品,我需要以有限的信息在列表视图中显示这些项目。onclick event for recyclerview
一旦买方点击它需要导航到另一个页面的特定项目,它需要显示有关该产品的更多细节。
我已经在android studio中使用recyclerview生成了一个列表。如果我点击该列表视图中的一个数据集,它必须导航到另一个页面,并且必须显示更多关于被用户粘贴的数据集的信息。
我已经尝试了下面的代码段,但它不会工作。
public class getItem extends AppCompatActivity {
private RecyclerView mAd_list;
private DatabaseReference mDatabase;
Button buy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_items);
mDatabase = FirebaseDatabase.getInstance().getReference().child("Items");
mAd_list = (RecyclerView) findViewById(R.id.ad_list);
mAd_list.setHasFixedSize(true);
mAd_list.setLayoutManager(new LinearLayoutManager(this) {
});
mAd_list.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent intentRegistration=new Intent(getApplicationContext(),DisplayListDetailActivity.class);
startActivity(intentRegistration);
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Item, AdViewHolder>firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Item, AdViewHolder>(
Item.class,
R.layout.view_item,
AdViewHolder.class,
mDatabase
) {
@Override
protected void populateViewHolder(AdViewHolder viewHolder, Item model, int position) {
viewHolder.setTitle(model.getName());
viewHolder.setDesc(model.getPrice().toString());
viewHolder.setImage(getApplicationContext(), model.getImage());
}
};
mAd_list.setAdapter(firebaseRecyclerAdapter);
}
}
class AdViewHolder extends RecyclerView.ViewHolder{
View mView;
public AdViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setTitle(String title) {
TextView post_title = (TextView) mView.findViewById(R.id.post_title);
post_title.setText(title);
}
public void setDesc(String desc){
TextView post_desc = (TextView) mView.findViewById(R.id.post_desc);
post_desc.setText(desc);
}
public void setImage (Context ctx, String image){
ImageView post_image = (ImageView) mView.findViewById(R.id.post);
Picasso.with(ctx).load(image).into(post_image);
}
}
接口
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp">
<TextView
android:layout_width="match_parent"
android:layout_height="324dp"
android:id="@+id/post_desc"
android:text="The Ad Description Goes Here"
android:paddingTop="260dp"
android:textSize="16dp"
android:paddingBottom="15dp"
android:paddingLeft="10dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/post"
android:scaleType="centerCrop"
android:adjustViewBounds="true" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/post_title"
android:text="Ad Title Goes Here"
android:paddingTop="220dp"
android:textSize="16dp"
android:paddingLeft="10dp"
android:textStyle="bold" />
</android.support.v7.widget.CardView>
您已经在列表容器上设置了单击侦听器。有很多关于你的案例的问题/教程。听取点击应该设置在项目不是整个列表,但它很难通过电话粘贴一些来源,对不起... –
你可以找到解决方案[这里](https://stackoverflow.com/questions/28767413/how-to -open-a-different-activity-on-recyclerview-item-onclick) – Anonymous
[RecyclerView onClick]的可能重复(https://stackoverflow.com/questions/24471109/recyclerview-onclick) –