現在、私はRecyclerViewを持っており、Activity2
/activity2.xml
を開きます。 activity2.xml
にはテキストビューがあります。Android - RecyclerViewでクリックされた位置に応じてテキストビューを更新します。
私の質問:私のrecyclerviewでどのアイテムがクリックされたかによって、activity2.xml
にテキストを設定するにはどうすればよいですか?私もイメージを設定するが、それは今待つことができます。
View.OnClickListener
を実装するRecyclerView.ViewHolder
を使用しています。 は、ここに私のRecyclerView.Adapter
RecyclerPracticeAdapter.java
public class RecyclerPracticeAdapter extends RecyclerView.Adapter<MyViewHolder> {
Context c;
ArrayList<Category> category;
public RecyclerPracticeAdapter(Context c, ArrayList<Category> category) {
this.c = c;
this.category = category;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.model, null);
MyViewHolder holder = new MyViewHolder(v);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.nameTxt.setText(category.get(position).getName());
holder.img.setImageResource(category.get(position).getImage());
//Listners
//THIS IS WHERE YOU CAN CHOOSE TO OPEN A ACTIVITY WHEN USER CLICK ON A CARDVIEW!!
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onItemClick(View v, int pos) {
switch (pos) {
case 0:
// Open New Activity......
// THIS IS WHERE I WANT TO CHANGE TEXT activity2.xml
Intent intent=new Intent(v.getContext(),Activity2.class);
v.getContext().startActivity(intent);
break;
case 1:
Intent intent=new Intent(v.getContext(),Activity2.class);
v.getContext().startActivity(intent);
break;
}
}
});
}
@Override
public int getItemCount() {
return category.size();
}
}
activity2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Update Text"
android:id="@+id/txt_update"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center_horizontal" />
</RelativeLayout>
は、誰かが正しい方向に私をポイントしてくださいできますか?
EDIT :::
MyViewHolder:
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public ImageView img;
public TextView nameTxt;
ItemClickListener itemClickListener;
public MyViewHolder(View itemView) {
super(itemView);
nameTxt= (TextView) itemView.findViewById(R.id.nameTxt);
img= (ImageView) itemView.findViewById(R.id.ppImage);
itemView.setOnClickListener(this);
}
public void setItemClickListener(ItemClickListener ic){
this.itemClickListener=ic;
}
@Override
public void onClick(View v) {
this.itemClickListener.onItemClick(v,getLayoutPosition());
}
}
カテゴリ:商品ののonClickに意図してデータ1.Pass
public class Category {
private int name;
private int image;
public Category(int name, int image) {
this.name = name;
this.image = image;
}
public int getName() {
return name;
}
public void setName(int name) {
this.name = name;
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
}
インテントでデータを渡すことができます – darwin
どのテキストを渡す必要がありますか?クリックされたアイテムの位置ですか?それについてもっと教えてください、私はデータを渡すのに役立ちます! – OBX
OBXクリックされた「ボタン」の説明です。私は例を使ってみましょう。私のrecycleViewには "Tennis"のアイテムがあり、次のアクティビティでテニスのルールを説明したいと思いますが、RecyclerViewでクリックしたアイテムごとに同じアクティビティを使用します。 –