私はそのアプリでショッピングアプリを開発しています。私は売り手によってアップロードされた商品をリストする必要があります。リストビューにこれらの項目を限られた情報で表示する必要があります。recyclerviewのonclickイベント
一度購入した商品をクリックすると別のページにナビゲートする必要があり、その製品の詳細を表示する必要があります。
android studio.ifでrecyclerviewを使用してリストを生成しました。そのリストビュー内の1つのデータセットをクリックすると、別のページに移動しなければならず、ユーザーによって強要されたデータセットに関する詳細情報を表示する必要があります。
私は次のコードセグメントを試しましたが、うまく動作しません。
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 – Anonymous
[RecyclerView onClick](https://stackoverflow.com/questions/24471109/recyclerview-onclick)の可能な複製 –