Android:返回上一个片段

时间:2016-04-22 18:24:41

标签: android android-fragments

我有一个片段,在我的应用中说A,我使用

开始一个活动结果
private void openComputationWindow(final int pos) {

// code here

    result = new Button(mActivity);
    result.setText("Select");
    result.setTextColor(Color.WHITE);
    result.setPadding(0, 30, 0, 20);
    layout.addView(result);

    result.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), SecondActivity.class);
            getParentFragment().startActivityForResult(intent, 1);
        }
    });
    });

// code here

}

第二个活动添加了一个片段。在这个片段中,我执行一些操作并将结果返回到上一个活动。

Intent intent = new Intent();
                    FragmentManager fm = getActivity().getSupportFragmentManager();
                    for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
                        fm.popBackStack();
                    }
                    getActivity().setResult(1, intent);
                    getActivity().finish();
                }

问题是在我的片段A中我将这些数据用于textView结果中的setText,与我发起意图的textView相同。我将此textView声明为全局变量,以便可以在onActivity结果中访问它。但是在将文本设置为结果textView时,我得到空指针异常。我不知道为什么它变为null,片段是否被重新初始化?虽然我之前做过类似的任务,但我从来没有遇到过问题。有人可以帮帮我吗。谢谢!!

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        result.setText(path);
    } 

编辑:我必须提到我已经在我的应用程序的另一部分重用了该片段,并且我在那里执行相同的功能,并且它在那里完美地工作。然而,我有一点点差异。我有一个托管在片段内的视图寻呼机。我使用片段A作为viewpager选项卡之一以及另一个viewpager选项卡的子项,让我们说B.当我将它用作Fragment B的子项时出现问题。

1 个答案:

答案 0 :(得分:-1)

我不知道变量结果的初始化位置。 你必须像这样初始化:

TextView result =(TextView)findViewById(R.id.YourTextView);