使用bundle对象在Fragments之间传递数据

时间:2016-11-07 14:29:12

标签: java android bundle

我有两个空白活动,其中包含两个片段。一个活动是有适配器,它作为Tabactivity与适配器内部。

我想用intent和bundle传递数据。 当用户在活动1中输入电子邮件并按下按钮时,电子邮件将显示在活动2中的TextView上。

以下是我得到的例外情况:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.presenter.utils.ui.AutoResizeTextView.setText(java.lang.CharSequence)' on a null object reference
                                                            at com.presenter.view.fragment.ForgotPasswordFragmentComplete.onCreate(ForgotPasswordFragmentComplete.java:50)
                                                            at android.support.v4.app.Fragment.performCreate(Fragment.java:2075)

我创建了Intent和bundle:

@Bind(R.id.btn_forgot)
    AppCompatButton btn_forgot;
    @Bind(R.id.forgot_edittext)
    AppCompatEditText editEmail;

public void onButtonClick() {
  Intent intent = new Intent(".presenter.view.activity.ForgotPasswordCompleted");

   intent.putExtra("email", editEmail.getText().toString());


   ForgotPasswordFragment fragment = new ForgotPasswordFragment();
   Bundle bundle = new Bundle();
   bundle.putString("email",editEmail.getText().toString());
   fragment.setArguments(bundle);

startActivity(意向);     }

清单:

<activity android:name=".presenter.view.activity.ForgotPasswordCompleted"
   android:label="Forgot"
   android:launchMode="singleTask"
   android:screenOrientation="portrait"
   android:windowSoftInputMode="adjustResize">

 <intent-filter>
   <action android:name=".presenter.view.activity.ForgotPasswordCompleted"/>
   <category android:name="android.intent.category.DEFAULT"/>
 </intent-filter>

我使用Dagger绑定了textview,在片段2中添加了String getName并实现了intent和bundle:

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



    Intent intent = getActivity().getIntent();
        Bundle bd = intent.getExtras();
        if ((bd != null)){
            String getName = (String) bd.get("email");
            resentTxt.setText(getName);
        }

1 个答案:

答案 0 :(得分:0)

你忘了写这一行

InjectorClass.inject(this); 
在onCreate中