2017-06-20 122 views

回答

0

在您的活动中试用此代码,它是来自我的工作应用程序的代码片段。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    yourArrayList.add("test"); 
    yourArrayList.add("test2") 
    Bundle bundle = new Bundle(); 
    bundle.putStringArrayList("arrayList", yourArrayList); 
    yourFragment yourFragment = new yourFragment(); 
    yourFragment.setArguments(bundle); 
    fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.add(R.id.main_container, yourFragment); 
    fragmentTransaction.commit(); 
} 

在你的片段,你可以这样

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

    ArrayList<String> values = getArguments().getStringArrayList("arrayList"); 

} 
0

您可以通过下面的片段,活动的通信通常的方式做到这一点访问值。那就是:

1)在你的Fragment类中声明一个公共接口。

2)在这个接口里面为你的列表声明一个getter方法。

3)让你的各个Activity实现这个接口。

4)内,您的片段,这样做:

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 
    YourInterfaceType activity = (YourInterfaceType) context; 
    List<> yourList = activity.getMyList(); 
} 

为了更清楚:

您的活动将是如下:

public class MyActivity extends Activity implements YourInterfaceType{ 
    @Override 
    public void getMyList(){ 
     return yourList; 
    } 
} 
0

通活动应遵循此行

Bundle bundle = new Bundle(); 
    bundle.putStringArrayList("valuesArray", namesArray); 
    namesFragment myFragment = new namesFragment(); 
    myFragment.setArguments(bundle); 
    fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.add(R.id.main_container, myFragment); 
    fragmentTransaction.commit(); 

中获取片段内遵循这一行

ArrayList<ObjectName> arraylist = extras.getParcelableArrayList("valuesArray"); 
+0

你有没有试过这一点,并成功了吗? – Sanoop

+0

是的,我获得成功 –

+0

嗯ArrayList arraylist'肯定这条线。它会用于'T'对象吗? – Sanoop

0

只要把你的阵列setargument在Actiivty和片段得到阵列 getArgument。

活动

Bundle bundle = new Bundle(); 
    bundle.putStringArrayList("valuesArray", namesArray); 
    namesFragment myFragment = new namesFragment(); 
    myFragment.setArguments(bundle); 
    fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.add(R.id.main_container, myFragment); 
    fragmentTransaction.commit(); 

片段

ArrayList<Model> values = getArguments().getStringArrayList("valuesArray"); 
相关问题