当前位置: 首页 > 知识库问答 >
问题:

RecyclerView-从另一个类访问列表

尉迟德惠
2023-03-14

我想访问另一个类的列表,然后把它放在我的RecycorViewAdapter对象中。

包含列表的第一个类。

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时,它不会返回任何类似于空列表的内容,并且RecycraView不会在应用程序上显示任何内容。

共有3个答案

公冶渝
2023-03-14

您可以使用共享偏好来存储列表,并且可以通过使用它的密钥来访问项目中的任何位置。最佳方法在此链接中共享TinyDb示例

谷梁波
2023-03-14

您可以按如下方式访问列表:

public class Class1{

    private List<Model> mList;
    public List<Model1> getList(){

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

在二等舱,你可以这样使用它:-

RecyclerViewAdapterrr adapter = new RecyclerViewAdapterrr(this,new Class1().getList()); 

setAdapter()很重要

your_recyclerview_object.setAdapter(adapter);
叶桐
2023-03-14

您可以使用接口

在类1内部创建一个接口,如下所示:

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

在Class1中创建侦听器的属性:

CustomListListener mListener;

添加用于初始化Class1内侦听器的公共函数:

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

在类2中实现侦听器:

public class Class2 implements Class1.CustomListListener { 
}

当您在Class2中实现监听器时,您将在类2中得到一个函数,如下所示:

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

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

 Class1.setOnListChangeListener(this)
 this refers to class2 context

2-将数据发送到class1中的class2,无论何时您想要更新列表,请使用如下mListener属性:

mListener.onListChanged(myList);

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

 类似资料:
  • 我是一名Java程序员初学者。我试图在类交通中访问类车中的两个列表,这样我就可以执行while循环,循环直到主类中的列表为空 这就是我现在掌握的代码,我试着从普通车上扩展流量,但没有成功,我被卡住了。我该怎么解决这个问题?

  • 问题内容: 我是Java的新手,但是碰到了砖墙。我想从另一个类访问GUI组件(已在一个类中创建)。我正在从一个类创建一个新的GUI类,就像这样; 并且我可以访问该类中的组件,但是当我去另一个类时,我不能。我真的只需要访问即可更新其内容。有人可以向我指出正确的方向,任何帮助将不胜感激。 类: 问题答案: 首先要尊重封装规则。做你的领域。接下来,您需要输入需要访问的字段。 然后,您需要将GUI传递给访

  • 我是爪哇的新手,遇到了困难。我想从另一个类访问GUI组件(在一个类中创建)。我正在从一个类创建一个新的GUI类,就像这样; 我可以访问该类中的组件,但当我转到其他类时,我无法访问。我真的需要访问来更新它们的内容。有人能给我指一下正确的方向吗?非常感谢您的帮助。 类:

  • 我是java新手,我不知道如何从另一个类访问变量 我正在尝试编写一个代码来发送带有未存储在本地的附件的邮件。我想访问SendMail类中ExcelFile类中编写的变量 如何在另一个类中访问excelFileAsByte并发送邮件而不将其存储在本地。我可以使用addBodyPart和ByteArrayResource将文件添加为附件吗。