我不知道为什么会发生这种错误。我已经检查了链接到这个的所有代码,但仍然没有给出任何解决方案。
IDE只是像这样的gimme错误:
java.lang.NullPointerException:尝试调用虚方法' int android.os.Bundle.getInt(java.lang.String)'在null对象引用上 在com.gook.rebill.fragment.HomeFragment.onAttach(HomeFragment.java:74)
我知道它是一个空对象引用,但我仍然无法找到错误的原因。
请帮帮我。
这是我的代码:
public void onSectionAttached(int number) {
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
break;
case 2:
mTitle = getString(R.string.title_section2);
break;
case 3:
mTitle = getString(R.string.title_section3);
break;
}
}
这里我在HomeActivity中使用片段代码:
var myDate="18/04/2016";
myDate=myDate.split("/");
var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
var ts = new Date(newDate).getTime(); //timestamp in milliseconds
答案 0 :(得分:1)
我认为getArguments()
会返回null
你可以看到这些例子:
Android Fragment getArguments() returns null
Fragment getArguments() returns null
答案 1 :(得分:0)
从您附加的代码中,它似乎就在这里。
hp = new URL(
getString(R.string.liveurl) + "foodcategory.php");
问题是 - 当你试图访问string.liveurl时,什么是R. Can R为null?这似乎是可能的问题。你能用调试器检查R是什么吗?
答案 2 :(得分:0)
你应该这样做:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallbacks = (CategorySelectionCallbacks) activity;
} catch (ClassCastException e) {
throw new ClassCastException("Activity must implement CategorySelectionCallbacks.");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
categoryListView = (ListView) rootView.findViewById(R.id.categoryListView);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
((HomeActivity) getActivity()).onSectionAttached(getArguments().getInt(ARG_SECTION_NUMBER));
}
修改1:
您应该通过以下方式替换HomeFragment:
HomeFragment homeFragment = HomeFragment.newInstance(my_int);
_viewPagerAdapter.addFragments(homeFragment,"Home");
原因:您只需使用默认构造函数创建{strong>实例 Fragment
,而使用Arguments
创建实例。
希望这会对你有所帮助。
答案 3 :(得分:0)
试试这个 -
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallbacks = (CategorySelectionCallbacks) activity;
} catch (ClassCastException e) {
throw new ClassCastException("Activity must implement CategorySelectionCallbacks.");
}
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
((HomeActivity) getActivity()).onSectionAttached(getArguments().getInt(ARG_SECTION_NUMBER));
}