Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ArrayList传递给片段_Java_Android_Android Fragments_Arraylist - Fatal编程技术网

Java 将ArrayList传递给片段

Java 将ArrayList传递给片段,java,android,android-fragments,arraylist,Java,Android,Android Fragments,Arraylist,我的MainActivity有两个片段(Tab1和Tab2)。 我已经通过XML解析两次从URL获取数据,并将其存储在MainActivity中的两个不同的ArrayList中 这两个片段具有列表视图。现在我必须将1个Arraylist传递给一个片段,将第2个Arraylist传递给第二个片段,然后将这些Arraylist显示到这两个片段的列表视图中 如何将2个ArrayList传递给这两个片段,以及如何在这2个片段中显示它们 这是一种创造活力的方法 protected void onCreat

我的MainActivity有两个片段(Tab1和Tab2)。 我已经通过XML解析两次从URL获取数据,并将其存储在MainActivity中的两个不同的ArrayList中

这两个片段具有列表视图。现在我必须将1个Arraylist传递给一个片段,将第2个Arraylist传递给第二个片段,然后将这些Arraylist显示到这两个片段的列表视图中

如何将2个ArrayList传递给这两个片段,以及如何在这2个片段中显示它们

这是一种创造活力的方法

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    loadPage();
    // Creating The Toolbar and setting it as the Toolbar for the activity

    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);


    // Creating The ViewPagerAdapter and Passing Fragment Manager, Titles fot the Tabs and Number Of Tabs.
    adapter =  new ViewPagerAdapter(getSupportFragmentManager(),Titles,Numboftabs);

    // Assigning ViewPager View and setting the adapter
    pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(adapter);

    // Assiging the Sliding Tab Layout View
    tabs = (SlidingTabLayout) findViewById(R.id.tabs);
    tabs.setDistributeEvenly(true); // To make the Tabs Fixed set this true, This makes the tabs Space Evenly in Available width

    // Setting Custom Color for the Scroll bar indicator of the Tab View
    tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
        @Override
        public int getIndicatorColor(int position) {
            return getResources().getColor(R.color.tabsScrollColor);
        }
    });

    // Setting the ViewPager For the SlidingTabsLayout
    tabs.setViewPager(pager);

}
我在另一个函数(OnPostExecute)中有两个ArrayList,我在其中通过XML解析接收数据


我没有在两个片段中编辑任何内容。到目前为止,我只是使用列表视图创建这两个片段

片段
s有一个名为
setArguments(Bundle)
的方法
Bundle
内置了对各种
ArrayList
的支持。只需使用您选择的键将
ArrayList
放入
包中即可

但是,我建议您遵循
newInstance()
模式,即您的片段有一个
static
newInstance()方法,该方法接受
Fragment
运行所需的任何参数,在本例中是某种
ArrayList

引用以下文件中的一个例子:

捆绑包可在以后(任何时候)检索,但通常在
onCreate()
或类似程序中完成。存储在上面的
“索引”
可以按如下方式检索:

@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle args = getArguments();
    if (args != null) {
        mIndex = args.getInt("index");
    }
}

在上面的示例中,参数是一个
int
,但是
ArrayList

可以遵循相同的逻辑,我要注意的是,您可以通过调用
getArguments()
来读取片段的
onCreate()
方法中的这些参数。所以在本例中,
intindex=getArguments().getLong(“index”,0)其中0是默认值。@McAdams331好主意,我已经相应地更新了答案。谢谢。我必须将列表从一个活动传递到另一个片段,所以我创建了详细对象片段,并在主活动方法中设置了参数,其中有arrayList??正确的??谢谢@用户3585510此答案是否解决了您的问题?如果是这样的话,请您将此标记为答案。如果没有,请告诉我原因,我会看看是否可以进一步帮助你。
@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle args = getArguments();
    if (args != null) {
        mIndex = args.getInt("index");
    }
}