gpt4 book ai didi

android - RecyclerView - 从另一个类访问列表

转载 作者:行者123 更新时间:2023-11-29 02:25:46 25 4
gpt4 key购买 nike

我想从另一个类访问一个列表,然后将其放入我的 RecyclerViewAdapter 对象中。

包含列表的第一个类。

public class Class1 {

// The List :

List<Model1> mlisto = new ArrayList<>();
mlisto.add(new Model1("HOLA","Dep17",R.drawable.img));
mlisto.add(new Model1("bonjour","Dep17",R.drawable.img));
mlisto.add(new Model1("hi","Dep17",R.drawable.img));
}

第二个类从第一个类访问列表。

public class Class2 { 

RecyclerViewAdapter adapter = new RecyclerViewAdapter(this,new Class1().mlisto);

}

当我使用 new Class1().mlisto 时,它不会像空列表那样返回任何内容RecyclerView 不会在应用程序上显示任何内容。

最佳答案

你可以使用接口(interface)

像这样在 class1 中创建一个接口(interface):

public interface CustomListListener{
void onListChanged(List<Model1> myList);
}

在 Class1 中创建监听器属性:

CustomListListener mListener;

在 Class1 中添加一个用于初始化监听器的公共(public)函数:

public static void setOnListChangeListener(CustomListListener listener){
this.mListener = listener;
}

在 Class2 中实现监听器:

public class Class2 implements Class1.CustomListListener { 
}

当你在 Class2 中实现 listener 时,你将在 class2 中得到一个这样的函数:

@Override
public void onListChanged(List<Model1> myList) {
// in here you will access the list that you created or changed inside class1
}

当您想将 myList 数据发送到 class2 时:1- 启动 mListener 属性:例如,您可以在类的 OnCreate 函数中启动 mListener

 Class1.setOnListChangeListener(this)
this refers to class2 context

2- 发送数据到class2在你的 class1 中,每当你想更新列表时,使用像这样的 mListener 属性:

mListener.onListChanged(myList);

这就像您可以随时更改列表并在 onListChanged 函数中获取更新的值,您也可以在 CustomListListener 中添加更多函数以用于不同的场景,例如删除项目、添加项目等...

关于android - RecyclerView - 从另一个类访问列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52347367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com