RecyclerView-从另一个类访问列表

时间:2018-09-15 17:51:54

标签: android

我想从另一个类访问一个列表,然后将其放在我的newness ------> $newness$ uk -----------> $uk$ 对象中。

包含列表的第一类。

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在应用程序上什么也不显示。

3 个答案:

答案 0 :(得分:0)

您可以像这样访问列表:

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);

答案 1 :(得分:0)

您可以使用界面

在class1内部创建一个这样的接口:

function cattitlerss($content) {
$postcat = "";
foreach((get_the_category()) as $cat) {
$postcat .= ' ('.$cat->cat_name . ')';
}
$content = do_shortcode('[wp_custom_image_category onlysrc="false" size="full" term_id="123" alt="alt :)"]');
return $content;
}
add_filter('the_title_rss', 'cattitlerss');

在Class1内部创建侦听器的属性:

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

添加一个公共函数来初始化Class1内部的侦听器:

CustomListListener mListener;

在Class2中实现侦听器:

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

在Class2内实现侦听器时,您将在class2内获得如下功能:

public class Class2 implements Class1.CustomListListener { 
}

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

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

2-将数据发送到class2 在class1内部,每当您要更新列表时,请使用mListener属性,如下所示:

 Class1.setOnListChangeListener(this)
 this refers to class2 context

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

答案 2 :(得分:0)

您可以使用sharedPreference来存储列表,并可以使用列表中的key访问列表。最佳方法是在此链接TinyDb Example

中共享