Android Studio - 片段创建后是否可以修改?

时间:2016-03-09 05:11:17

标签: android android-fragments android-activity android-studio

我有一个Activity,其中有一个显示Fragment的部分。在片段上单击一个按钮,并使用一些按钮启动一个新的Activity。根据单击的按钮,该活动将关闭,Fragment应相应更新,但我无法访问Fragment上的视图进行编辑。

似乎在Fragment的onResume()中,我无法使用getView()访问该视图。我也试过从Fragment所在的Activity中传入视图,但是也返回了null。

所以我想知道在调用onCreateView()后片段是否是静态的?

SecondActivity回调到MainActivity:

@Override
protected void onResume() {
    super.onResume();
    rvAdapter.setOnItemClickListener(new RVAdapter.MyClickListener() {
        @Override
        public void onItemClick(View v, int position) {
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.putExtra("key", value);
            startActivity(intent);
        }
    });
}

MainActivity处理回调并调用片段中的函数:

@Override
protected void onResume() {
    super.onResume();
    Intent intent = getIntent();
    String value = intent.getStringExtra("key");
    if (value != null) {
        ((ExampleFragment) exampleFragment).updateFragment(value);
    }
}

尝试更新自己的片段:

public void updateFragment(String value) {
    TextView textView = (TextView) getView().findViewById(R.id.profile_text_view);
    if (value != null) {
        textView.setText(value);
    }
}

结果将是片段中getView()调用的NPE。我尝试过从MainActivity传递视图:exampleFragment.getView()但也没有运气。

0 个答案:

没有答案