我正在使用NavigationDrawer获取菜单,并且菜单上的每个项目都有一个片段,例如我有一个主菜单,其中包含homefragemnt.xml和homefragment.java,所以在xml文件文件中有一个textview我想使用MainActivity.java更改textviews值
并使用以下代码:TextView t1 = (TextView) findViewById(R.id.changetxt);t1.setText("ChangedText");
changetxt是homefragment.xml文件中TextView的id
但是这段代码给出了运行时错误Attempt to invoke virtual method on a null object reference.
是什么导致了这个问题,我该如何解决?
答案 0 :(得分:1)
您必须从片段视图中获取textview的引用而不是活动。 您在片段的onCreateView中充气的视图。
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.myview,container,false);
TextView t1 = (TextView) view.findViewById(R.id.changetxt);t1.setText("ChangedText");
return view;
}
此处视图是使用。
初始化片段的视图this链接可以帮助您
答案 1 :(得分:0)
片段:
公共类MyFragment扩展了Fragment {
Constants()
}
活动:
myFragment.setTextView( “ChangedText”);
希望它对你有所帮助。