【发布时间】:2023-03-25 16:58:02
【问题描述】:
我尝试从 Activity 调用 Fragment 方法。需要从活动中设置文本 t1..t6(在 fragment.xml 中)。所以有错误
致命异常:java.lang.NullPointerException:尝试调用 null 上的虚拟方法“void PageFragment.setTime(java.lang.String)” 对象引用。
PageFragment.java
公共类 PageFragment 扩展 Fragment {
static final String ARGUMENT_PAGE_NUMBER = "arg_page_number";
TextView t1,t2,t3,t4,t5,t6;
int pageNumber;
static PageFragment newInstance(int page) {
PageFragment pageFragment = new PageFragment();
Bundle arguments = new Bundle();
arguments.putInt(ARGUMENT_PAGE_NUMBER, page);
pageFragment.setArguments(arguments);
return pageFragment;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, null);
t1=(TextView)view.findViewById(R.id.t1);
t2=(TextView)view.findViewById(R.id.t2);
t3=(TextView)view.findViewById(R.id.t3);
t4=(TextView)view.findViewById(R.id.t4);
t5=(TextView)view.findViewById(R.id.t5);
t6=(TextView)view.findViewById(R.id.t6);
return view;
}
public void setTime(String a){
t1.setText(a);
}
}
Schedule.java
FragmentManager fm = getSupportFragmentManager();
PageFragment fragment =(PageFragment)fm.findFragmentById(R.id.RelativeLayout1);
fragment.setTime((input1.getText().toString()));
【问题讨论】:
-
你的班级正在扩展 Fragment。不需要
onCreate方法。 -
你能发布完整的 Schedule.java 吗?
标签: android nullpointerexception fragment