我想从多个数组中引入recycler_item.xml信息 数组
newstitl.add(i, titl);
newsdat.add(i, dat);
newsbody.add(i, body);
定位
<TextView
android:id="@+id/tv_recycler_item"
android:layout_width="wrap_content"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/tv_recycler_item1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/tv_recycler_item2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
/>
在 NewsFragment.java 中
mRecyclerView = (RecyclerView) viiew.findViewById(R.id.my_recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(mContext);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new RecyclerAdapter(newstitl);
mRecyclerView.setAdapter(mAdapter);
有RecyclerAdapter.java
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private ArrayList<String> mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(View v) {
super(v);
mTextView = (TextView) v.findViewById(R.id.tv_recycler_item);
}
}
public RecyclerAdapter(ArrayList<String> dataset) {
mDataset = dataset;
}
@Override
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_item, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.mTextView.setText(mDataset.get(position));
}
@Override
public int getItemCount() {
return mDataset.size();
}
}
虽然我只能获取一个数组 Here is a screenshot
最佳答案
很简单,你只需要对你的适配器做一些调整..你需要的是一个接受3个ArrayList的适配器..
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private ArrayList<String> mDataset;
private ArrayList<String> mDataset2;
private ArrayList<String> mDataset3;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView, mTextView2, mTextView3 ;
public ViewHolder(View v) {
super(v);
mTextView = (TextView) v.findViewById(R.id.tv_recycler_item);
mTextView2 = (TextView) v.findViewById(R.id.tv_recycler_item1);
mTextView3 = (TextView) v.findViewById(R.id.tv_recycler_item2);
}
}
public RecyclerAdapter(ArrayList<String> dataset, ArrayList<String>dataset2, ArrayList<String>dataset3) {
mDataset = dataset;
mDataset2 = datset2;
mDataset3 = dataset3;
}
@Override
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_item, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.mTextView.setText(mDataset.get(position));
holder.mTextView1.setText(mDataset2.get(position));
holder.mTextView.setText(mDataset3.get(position));
}
@Override
public int getItemCount() {
return mDataset.size();
}
}
并像这样在 NewsFragment 中调用 3 个 ArrayList 适配器构造函数 -
mRecyclerView = (RecyclerView) viiew.findViewById(R.id.my_recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(mContext);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new RecyclerAdapter(newstitl,newsdat, newsbody);
mRecyclerView.setAdapter(mAdapter);
关于java - 如何在Android Studio中的RecyclerAdapter中传递多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001750/