如何将数组列表对象从活动传递到android中的片段

时间:2017-06-20 12:04:43

标签: android

我现在在数组列表中存储一些值,我想将相同的数组列表对象传递给活动的片段。那么如何从活动中发送数组列表对象并在片段中接收相同的对象。

4 个答案:

答案 0 :(得分:1)

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

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

}

答案 1 :(得分: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;
    }
}

答案 2 :(得分:0)

传递活动应遵循以下几行

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

让里面的片段按照这一行

int ID;
 if (int.TryParse(Request.QueryString["ID"], out ID))
  {
                  IDHdn.Value = ID.ToString();
                  IDLbl.Text = IDHdn.Value;
   }

答案 3 :(得分:0)

  

将您的数组放入Actiivty中的setargument并获取Array   片段中的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");