【问题标题】:Passing data between Fragments with bundle object使用 bundle 对象在 Fragment 之间传递数据
【发布时间】:2016-11-08 03:01:36
【问题描述】:

我有两个空白活动,其中包含两个片段。一个活动有适配器,它充当带有适配器的 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 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 中实现了意图和捆绑:

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

【问题讨论】:

  • 在 onButtonClick 中创建的既不是意图也不是片段,您什么也没做
  • 我一直在尝试,我该怎么处理它们?@Selvin

标签: java android bundle


【解决方案1】:

你忘了写这行

InjectorClass.inject(this); 

在 onCreate.

【讨论】:

  • 谢谢,我会做的..你认为注射有问题吗? @Harish Gyanani
  • 是的,你得到 NullPointerException 因为 AutoResizeTextView 为空。
  • 我可以从异常中看到,但是您认为在片段 2 中注入 Class 有问题吗?
  • 一个活动不应将捆绑数据发送到属于另一个活动的片段。将活动 A 的数据发送到活动 B,然后将活动 B 的数据发送到片段(ForgotPasswordFragment)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多