我把一切都搞定了。我想知道为什么以及如何运作。
我想使用Bundle SavedInstanceState在textView上保留我的设置。在片段中从纵向到横向数据保留并重置一切都很好;然而,当回到肖像....在TextView对象上崩溃NPE!在一些Logging之后,我注意到TVobject没有设置回到Portrait。我的解决方法如下......有人可以帮我理解幕后发生的事情。感谢。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sis) {
// TODO Auto-generated method stub
v=inflater.inflate(R.layout.myhistfrag_b, container, false);
text = (TextView) getActivity().findViewById(R.id.tvNewD);
// work around reset with v not getActivity() /// why ?
if(text==null){
text = (TextView) v.findViewById(R.id.tvNewD);
}
if( sis != null ) {
Log.e("myLog me", sis.get("data").toString());
Log.d("myLog me 2", text.toString());
text.setText(sis.get("data").toString());
}
return v;
}
答案 0 :(得分:0)
因为您在Fragment
中创建了View
的{{1}}。它尚未附加到onCreateView()
,因此使用Activity
搜索视图将始终失败。使用Activity
只需创建 onCreateView()
的{{1}},并使用Fragment
使用{{View
引用1}}在方法中提供(或者在那时你可以使用onViewCreated()
)。例如:
View