My Singleton类:,这是我在官方文档中找到的Singleton类。
public class Singleton {
private static Singleton uniqInstance;
private Singleton() {
}
public static Singleton getInstance() {
if (uniqInstance == null) {
{
if (uniqInstance == null)
uniqInstance = new Singleton();
}
}
return uniqInstance;
}
} 我的第一个片段:--这是我的第一个片段,这里我要添加带有对象类名的ArrayList项。
public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState){
View mView = inflater.inflate(R.layout.fragment_first, container,false);
RecyclerView rvFirst = mView.findViewById(R.id.rv_first_layout);
rvFirst.setHasFixedSize(true);
rvFirst.setLayoutManager(new LinearLayoutManager(mView.getContext()));
mArrayList = new ArrayList<Names>();
mArrayList.add(new Names("Hello"));
mArrayList.add(new Names("This"));
mArrayList.add(new Names("Is"));
mArrayList.add(new Names("Android"));
// HERE I WANT TO SEND ARRAY-LIST DATA TO THE SECOND FRAGMENT
mAdapter = new NameAdapter(mArrayList);
rvFirst.setAdapter(mAdapter);
return mView;
} 我的第二个片段:,这是我的第二个片段,这里我试图从第一个片段中获取ArrayList条目。
public View onCreateView(LayoutInflater inflater, ViewGroup
container,Bundle savedInstanceState){
View mView = inflater.inflate(R.layout.fragment_second, container,false);
rvSecond = (RecyclerView) mView.findViewById(R.id.rv_second_layout);
rvSecond.setHasFixedSize(true);
rvSecond.setLayoutManager(new LinearLayoutManager(getContext()));
mArrayList = new ArrayList<Names>();
// HERE I WANT TO GET ARRAY-LIST FROM FIRST FRAGMENT
mAdapter = new NameAdapter(mArrayList);
rvSecond.setAdapter(mAdapter);
return mView;
}发布于 2018-02-27 11:25:00
首先,在单例类中设置数组,如下所示
您的单例类应该如下所示:-
public class Singleton {
private static Singleton uniqInstance;
public ArrayList<Names> names = new ArrayList<Names>();;
private Singleton() {
}
public static Singleton getInstance() {
if (uniqInstance == null)
uniqInstance = new Singleton();
return uniqInstance;
}
public void setArrayList(ArrayList<Names> names)
{
this.names = names;
}
public ArrayList<Names> getArrayList()
{
return this.names;
}
} 在列表中添加值后的第一个片段中:-
Singleton.getInstance().setArrayList(mArrayList);在你的第二个片段中,就像这样:-
Singleton.getInstance().getArrayList();发布于 2018-02-27 11:20:03
为什么要使用单例,如果两个片段都连接到相同的活动中,那么您可以这样做,
首先,在活动类中创建一个公共列表变量。
然后从片段类中引用它的上下文,如
((YourActivityClass)getActivity()).myArrayList.get(i);https://stackoverflow.com/questions/49007322
复制相似问题