我正在開發一個購物應用程序,在那個應用程序中,我需要列出賣家上傳的產品,我需要以有限的信息在列表視圖中顯示這些項目。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) –