Android 如何使用Recyclerview将ViewModel arraylist数据添加到片段中

Android 如何使用Recyclerview将ViewModel arraylist数据添加到片段中,android,android-fragments,android-recyclerview,android-viewmodel,Android,Android Fragments,Android Recyclerview,Android Viewmodel,我是android ViewModel的新手。我曾尝试使用ViewModel和recyclerview添加arraylist项,但无法。请帮助我 这是GalaryViewModel: class GalleryViewModel extends ViewModel { private MutableLiveData<ArrayList<String>>fruits ; MutableLiveData<ArrayList<String&

我是android ViewModel的新手。我曾尝试使用ViewModel和recyclerview添加arraylist项,但无法。请帮助我

这是GalaryViewModel:

class GalleryViewModel extends ViewModel {

    private MutableLiveData<ArrayList<String>>fruits ;


      MutableLiveData<ArrayList<String>> getFruits() {
        if(fruits == null){
            fruits = new MutableLiveData<>();
            loadFruits();
        }

        return fruits;
    }

    private void loadFruits(){
        ArrayList<String> fruitList = new ArrayList<>();

        fruitList.add("Apple");
        fruitList.add("Banana");
        fruitList.add("Pinaple");
        fruitList.add("Apple");
        fruitList.add("Cucamber");
        fruitList.add("Cocunut");

        fruits.setValue(fruitList);

    }
}
class GalleryViewModel扩展了ViewModel{
私有可变的生活数据;
MutableLiveData获取结果(){
if(fruits==null){
水果=新的可变LiveData();
装载水果();
}
还果;
}
私人文件(){
ArrayList水果列表=新的ArrayList();
水果列表。添加(“苹果”);
水果列表。添加(“香蕉”);
结果列表。添加(“Pinaple”);
水果列表。添加(“苹果”);
水果列表。添加(“琥珀”);
结果列表。添加(“Cocunut”);
水果。设定值(水果列表);
}
}
这是一个GalleryFragment:我无法在public void onChanged()函数中添加setText值

公共类GalleryFragment扩展了片段{
私人语境;
私人视野;
专用GalleryViewModel GalleryViewModel;
私有ArrayList结果表;
公共GalleryFragment(上下文上下文、视图视图、GalleryViewModel GalleryViewModel、ArrayList结果列表){
this.context=上下文;
this.view=视图;
this.galleryViewModel=galleryViewModel;
this.fruitList=结果列表;
}
公共视图onCreateView(@NonNull layoutiner充气机,
视图组容器,捆绑包savedInstanceState){
RecyclerView RecyclerView=view.findViewById(R.id.gRecyclerView);
最终GallaryRecyclerView适配器=新GallaryRecyclerView(上下文,结果列表);
recyclerView.setAdapter(适配器);
setLayoutManager(新的LinearLayoutManager(this.context));
galleryViewModel=
ViewModelProviders.of(this.get)(GalleryViewModel.class);
视图根=充气机。充气(R.layout.fragment_gallery,container,false);
final TextView TextView=root.findviewbyd(R.id.text\u gallery);
galleryViewModel.getFruits().observe(这个,新的观察者(){
@凌驾
更改后的公共void(ArrayList字符串){
setText((CharSequence)字符串);
}
//@覆盖
//公共void onChanged(@Nullable String s){
//textView.setText;
//            }
});
返回根;
}
}
这是一个GalleryRecyclerview:

public class GallaryRecyclerView extends RecyclerView.Adapter<GallaryRecyclerView.ViewHolder>{

    private Context context;
    private ArrayList<String> fruitList;

    public GallaryRecyclerView(Context context, ArrayList<String> fruitList) {
        this.context = context;
        this.fruitList = fruitList;
    }

    class ViewHolder extends RecyclerView.ViewHolder {

        TextView fruitsView;

        ViewHolder(@NonNull View itemView) {
            super(itemView);
            fruitsView = itemView.findViewById(R.id.text_gallery);
        }
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.fragment_gallery,parent,false);

        return new  ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.fruitsView.setText(fruitList.get(position));


    }

    @Override
    public int getItemCount() {
        return fruitList.size();
    }


}
公共类GallaryRecyclerView扩展了RecyclerView.Adapter{
私人语境;
私有ArrayList结果表;
公共GallaryRecyclerView(上下文,ArrayList结果列表){
this.context=上下文;
this.fruitList=结果列表;
}
类ViewHolder扩展了RecyclerView.ViewHolder{
文本视图;
ViewHolder(@NonNull视图项视图){
超级(项目视图);
fruitsView=itemView.findviewbyd(R.id.text\u gallery);
}
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
context=parent.getContext();
LayoutFlater充气机=LayoutFlater.from(上下文);
视图=充气机。充气(R.layout.fragment_gallery,父级,false);
返回新的ViewHolder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
holder.FROUTSVIEW.SETEXT(FROUTSLIST.get(position));
}
@凌驾
public int getItemCount(){
返回fulllist.size();
}
}

您只需在onChanged方法中实例化结果列表

 @Override
        public void onChanged(ArrayList<String> strings) {
           this.fruitList = strings;

        }
@覆盖
更改后的公共void(ArrayList字符串){
this.fruitList=字符串;
}

您能否在
RecyclerView
中演示如何使用您的
ViewModel
?上面的GalleryRecyclerview是我的RecyclerView代码。观察数据后实例化适配器和RecyclerView@谢赫萨阿迪
 @Override
        public void onChanged(ArrayList<String> strings) {
           this.fruitList = strings;

        }