Java RecyclerView中的项数组

Java RecyclerView中的项数组,java,android,arrays,android-recyclerview,Java,Android,Arrays,Android Recyclerview,我有一个类将recyclerView呈现为列表(由数组中的元素数定义),但在合并数据类时遇到了问题 public class Tab3 extends Fragment { RecyclerView recyclerView; String[] Items={"Item 0", "Item 1", "Item 2",}; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle

我有一个类将recyclerView呈现为列表(由数组中的元素数定义),但在合并数据类时遇到了问题

public class Tab3 extends Fragment {
RecyclerView recyclerView;
String[] Items={"Item 0", "Item 1", "Item 2",};

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.tab3, container, false);

    recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
    recyclerView.setAdapter(new Adapter(this.getActivity(), Items));

    return rootView;
    }
}
下面是应包含数据/适配器的类:

public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
String[] items ={"Item 0", "Item 1", "Item 2",};

public Adapter(Context context, String[] items) {
    this.context = context;
    this.items = this.items;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    LayoutInflater inflater = LayoutInflater.from(context);
    View row = inflater.inflate(R.layout.custom_row, parent, false);
    Item item = new Item(row);
    return item;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
    ((Item) holder).textView.setText(items[position]);
    ((Item) holder).toggleButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context, "Clicked at position " + position, Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
public int getItemCount() {
        return items.length;
}

public class Item extends RecyclerView.ViewHolder {
    TextView textView;
    ToggleButton toggleButton;

    public Item(View itemView) {
        super(itemView);
        textView = (TextView) itemView.findViewById(R.id.item);
        toggleButton = (ToggleButton) itemView.findViewById(R.id.toggleButton);
    }
}
}

在后一个类中,getItemCount()返回null(items.length)-但是,我不知道如何将其传递给另一段代码。

而不是在适配器中传递它。

String[] items ={"Item 0", "Item 1", "Item 2",};

String[] items;
而这

this.items = this.items;

public Adapter(Context context, String[] items) {
        this.context = context;
        this.items = items;
}
您可以在
getItemCount
上进行检查,但我认为没有必要进行此检查

@Override
public int getItemCount() {
 if (items != null) {
    return items.length;
    }
  return 0;
}

而不是在适配器中使用此选项

String[] items ={"Item 0", "Item 1", "Item 2",};

String[] items;
而这

this.items = this.items;

public Adapter(Context context, String[] items) {
        this.context = context;
        this.items = items;
}
您可以在
getItemCount
上进行检查,但我认为没有必要进行此检查

@Override
public int getItemCount() {
 if (items != null) {
    return items.length;
    }
  return 0;
}

@Rajan检查更新的答案,我不建议将数据类型从String[]更改为ArrayList,您也可以使用String数组实现同样的效果。@Rajan检查更新的答案,我不建议将数据类型从String[]更改为ArrayList,使用字符串数组也可以实现同样的效果。如果有帮助,请接受答案。如果有帮助,请接受答案。