如何将字符串从一个片段传递到另一个片段?

时间:2016-01-15 09:52:19

标签: java android android-fragments tabs

我想将一个字符串调用custID从一个fragement传递给anopther。但我不知道如何通过它。以下是我的代码:

class TabsAdapter extends FragmentPagerAdapter {
    public TabsAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return 2;
    }

    @Override
    public Fragment getItem(int i) {
        switch(i) {
            case 0: return MaterialUpConceptFakePage.newInstance();
            case 1: return MaterialUpConceptFakePage.newInstance();
        }
        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        switch(position) {
            case 0: return "Tab 1";
            case 1: return "Tab 2";
        }
        return "";
    }
}

有人可以帮我吗?

5 个答案:

答案 0 :(得分:0)

intstring()

答案 1 :(得分:0)

你可以使用下面的包 -

$_SESSION['xxx']

然后在onCreateView()里面你可以收到如下 -

Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putInt(key, value);
fragment.setArguments(bundle);

getFragmentManager()
.beginTransaction()
.replace(R.id.body, fragment, null)
.commit();

答案 2 :(得分:0)

用户 minChunks: function(module, count) { return module.resource && module.resource.indexOf('lodash') !== -1 } 将任何值从Bundle传递到另一个Fragment。这是您可以将字符串从一个Fragment传递到另一个{/ p}。

设置值

SecondFragment secondFragment = new SecondFragment ();
Bundle args = new Bundle();
args.putString("MyKey", "MyValue");
secondFragment.setArguments(args);

加载第二个片段

getFragmentManager().beginTransaction().add(R.id.container, secondFragment).commit();

在第二个片段的onCreateView中:

//Retrieve the value
String value = getArguments().getString("MyKey");

答案 3 :(得分:0)

虽然像其他答案一样简单的Bundle可以工作,但我已经看到你使用newInstance了,所以我会向你展示一个例子,同时仍然使用newInstance来使代码在将来更容易维护。

在您希望String添加此代码的片段中

 public static YourFragmentName newInstance(String str) {
        YourFragmentName fragment = new YourFragmentName ();
        Bundle args = new Bundle();
        args.putSerializable("customer_id", str);
        fragment.setArguments(args);
        return fragment;
    }

然后查看代码而不是

MaterialUpConceptFakePage.newInstance()
你应该

MaterialUpConceptFakePage.newInstance(customerid)

然后在你的onCreateView

里面
String customer_id = (String) getArguments().get("customer_id");

答案 4 :(得分:0)

SharedPreference是在活动或片段之间传递数据的好方法。您可以发送任何数据int,boolean,string int等。

SharedPreferences preference;
  //Initialize preference

preference = getActivity().getSharedPreferences("STATE",MODE_PRIVATE);
  // it uses key-value pairs
 // put string data to preference
    preference.edit().putString("Your_String_Data", "anything").commit();

//use this to get that value in any fragment.
 preference = getActivity().getSharedPreferences("STATE",
            Context.MODE_PRIVATE);

  String data  = preference.getString("Your_String_Data",null);