Невозможно отобразить все последние в массиве - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть массив из 4 элементов списка, и я пытаюсь отобразить их все в моем представлении переработчика, но по какой-то причине отображается только последний список.

class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {

    private static final String TAG = "MainAdapter";

    List<String> mStrings[];
    int k=0;
    int len;


    public MainAdapter(List<String> mStrings[]) {
        len = mStrings.length;
        this.mStrings = new List[len];
        for(int i=0;i<mStrings.length;i++) {
            this.mStrings[i] = mStrings[i];
        }
    }

    @NonNull
    @Override
    public MainAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.display_view,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MainAdapter.ViewHolder holder, int position) {
        Log.d(TAG,"Positions from onBind are:" +mStrings);
        holder.mItemName.setText(mStrings[k].get(position));
    }


    @Override
    public int getItemCount() {
        return mStrings[k].size();

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        public TextView mItemName;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            mItemName = itemView.findViewById(R.id.item_name);
        }
     }
}

В приведенном выше коде у меня есть массив списков с именем mStrings [], который состоит из 4 значений списка:

Таким образом, каждый массив имеет список элементов

[Pack 1, Pack5, Pack 8] [Pack34, Pack 82, Pack 12] [Pack 90, Pack 12, Pack982] [Pack 111, Pack 233, Pack100]

Когда я пытаюсь отобразить весь список, я могу отобразить только последний. Я знаю, что я делаю что-то не так с кодом, но я не могу понять, как я могу отобразить все 4 из них в представлении переработчика. Любые предложения или помощь?

1 Ответ

3 голосов
/ 28 февраля 2020

Проблема в l oop:

this.mStrings[i] = mStrings[i];

, вам нужно сделать это следующим образом:

this.mStrings[this.mStrings.length+i] = mStrings[i]; 
...