我有一个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()但也没有运气。