java - 如何在Android Studio中的RecyclerAdapter中传递多个数组

标签 java android parsing android-studio android-recyclerview

我想从多个数组中引入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/

相关文章:

Javascript 获取两个日期之间的时差

python - 解析数据以使用 Python 创建 json 数据对象

java - 无法找到显式 Activity 类 {};你有没有在你的 AndroidManifest.xml 中声明这个 Activity

java - 在 ColdFusion 中规范化字符串

java - AlertDialog.Builder 显示 API 请求为 null

android - 确保审计表不影响应用程序使用的 RAM

Java - 在 rt.exec 调用 WinXP 32 位的 C++ 程序后,应用程序随机挂起

java - 在 Android 上使用蓝牙的服务发现失败异常

java - 字符串格式和语言环境问题 - Android

php - XML 和 INI 哪个更快?