使用 bundle 对象在 Fragment 之间传递数据
Passing data between Fragments with bundle object
我有两个空白活动,其中包含两个 fragments.One activity 有适配器,它充当 Tabactivity,里面有适配器。
我想传递带有意图的数据并在里面捆绑。
当用户在 Activity 1 中输入电子邮件并按下按钮时,电子邮件将出现在 Activity 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);
开始Activity(意图);
}
清单:
<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>
我已将 textview 与 Dagger 绑定,添加了 String getName 并在片段 2 中实现了 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);
}
你忘了写这行
InjectorClass.inject(this);
在 onCreate 中。
我有两个空白活动,其中包含两个 fragments.One activity 有适配器,它充当 Tabactivity,里面有适配器。
我想传递带有意图的数据并在里面捆绑。 当用户在 Activity 1 中输入电子邮件并按下按钮时,电子邮件将出现在 Activity 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);
开始Activity(意图); }
清单:
<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>
我已将 textview 与 Dagger 绑定,添加了 String getName 并在片段 2 中实现了 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);
}
你忘了写这行
InjectorClass.inject(this);
在 onCreate 中。