我有一个RecyclerView
利用回收者适配器输出列表布局,像这样:传递模型对象到另一个活动
http://i.imgur.com/ORkXXTb.png
我需要在模型下方附上每个列表项,这样如果用户点击列表项中的任何元素(如圆圈或两个TextView中的一个),它将模型对象传递给下一个Activity
。
这里是User
模型:
public class User {
private String id;
private String username;
private String displayName;
private Object deletedAt;
private Statistic stat;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username= username;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public Object getDeletedAt() {
return deletedAt;
}
public void setDeletedAt(Object deletedAt) {
this.deletedAt = deletedAt;
}
public Statistic getStat() {
return stat;
}
public void setStat(Statistic stat) {
this.stat = stat;
}
}
下面是每个列表项的布局(user_layout.xml
):
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/user_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white">
<ImageView
android:id="@+id/avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:background="@drawable/avatar" />
<TextView
android:id="@+id/display_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/avatar"
android:layout_toRightOf="@+id/avatar"
/>
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/display_name"
/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
这里是所使用充气上述布局中的UserRecyclerAdapter
:
public class UserRecyclerAdapter extends RecyclerView.Adapter<UserRecyclerAdapter.ViewHolder> {
private Context context;
private List<User> mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView avatar;
public TextView displayName;
public TextView username;
public ViewHolder(LinearLayout view) {
super(view);
avatar = (ImageView) view.findViewById(R.id.avatar);
displayName = (TextView) view.findViewById(R.id.display_name);
username = (TextView) view.findViewById(R.id.username);
}
}
public UserRecyclerAdapter(Context context, List<User> myDataset) {
this.context = context;
this.mDataset = myDataset;
}
@Override
public UserRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_layout, parent, false);
ViewHolder vh = new ViewHolder((LinearLayout) view);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
User userItem = mDataset.get(position);
holder.displayName.setText(userItem.getDisplayName());
holder.username.setText(userItem.getUsername());
}
@Override
public int getItemCount() {
return mDataset.size();
}
}
所以我的问题是,如何将User
模型对象附加到每个列表项目,以便在单击某个元素(如圆形或两个TextView)时,它会将模型对象传递给下一个Activity
?
谢谢。
如何模型对象附加到列表项的布局,虽然,这样当在布局中的元素被点击时,它使用那个特定的模型对象实例。 – user5314557
这是一个不同的问题,我建议你看一下RecyclerView的一些例子,所以这些例子很多。无论如何,评论部分不是讨论该答案的地方,只是为此创建另一个问题。检查这个链接https://developer.android.com/training/material/lists-cards.html –
我觉得你很困惑。我不问如何制作RecyclerView。我明白了。我问如何将对象附加到布局,以便在单击布局元素时将对象发送到下一个活动。 – user5314557