我们如何在android中获取片段的先前数据?

时间:2015-02-17 02:16:52

标签: android android-fragments

在我的应用程序中,Main_Activity包含四个片段。在一个片段(称为mobile_fragment)中,每当我单击片段中的按钮时,它将移动到另一个活动,因为我需要获取一个值并需要将该数据发送到该片段(mobile_fragment)。

我做的是:  每当我点击片段中的按钮我移动到activity并获取值并将该值发送到main_Activity之后,在移动片段中我访问该变量(main_activity中的变量的静态声明)。

现在我的问题是在获取mobile_fragment中的值后,我已经在剩余的编辑文本中输入了值,小部件被清除(没有文本)。我如何获得以前输入的值?  请任何人帮助我。

fragment


    public class Mobile_Fragment extends Fragment {
       @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }


        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            if (container == null) {
                return null;
            }
      browseplans.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
             Intent intent = new Intent(getActivity(), BrowsePlans_Activity.class);
              startActivity(intent);
       }}


BrowseplansActivty:

  Intent intent=new Intent(BrowsePlans_Activity.this,MainActivity.class);
               intent.putExtra("Amount",amount);
               startActivity(intent);

Main_Activity:

    public class MainActivity extends FragmentActivity implements OnClickListener {

        public static String TAG = "Main First Frag";




        public static String contact_number, prepaid_amt;

        Fragment fragment;
        FragmentManager frgManager;
        FragmentTransaction ft;

        Bundle b = new Bundle();



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

            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_main);

            initUI();
            bindEvents();// now this is my changed one
            Intent in=getIntent();
            prepaid_amt=in.getStringExtra("Amount");
            Log.v("TAG+AMOUNT",""+prepaid_amt);
    }
    }

1 个答案:

答案 0 :(得分:0)

要将您的片段中的数据传递给您正在开始的活动,请将其传递给Intent Extras

要将活动中的数据返回到片段,请使用结果代码和意图调用setResult,该意图再次保存带有附加内容的数据集。在片段的onActivityResult覆盖中检索该数据。

要在分离并重新附加片段时将信息保存在片段中,请使用覆盖onSaveInstanceState,然后在onCreate和/或onCreateView覆盖中从该状态中提取数据。