Android 如何将活动创建为片段?
这是代码。但是有错误。 错误行已标记。错误为nullpoinerexception。有人能帮我吗Android 如何将活动创建为片段?,android,android-layout,android-fragments,android-button,Android,Android Layout,Android Fragments,Android Button,这是代码。但是有错误。 错误行已标记。错误为nullpoinerexception。有人能帮我吗 public class SettingFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View setting_layout = inflater.inflate(R
public class SettingFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View setting_layout = inflater.inflate(R.layout.setting_layout, container, false);
Button buttonClickChangeArea = (Button) setting_layout.findViewById(
R.id.Button_setting_settingarea);
<=error==> buttonClickChangeArea.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), SetAreaActivity.class);
// Bundle extras = new Bundle();
// intent.putExtras(extras);
getActivity().startActivity(intent);
}
});
return setting_layout;
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
公共类设置片段扩展片段{
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图设置\u布局=充气机。充气(R.layout.setting\u布局,容器,false);
按钮按钮ClickChangeArea=(按钮)设置\u layout.findViewById(
R.id.按钮\设置\设置区域);
buttonClickChangeArea.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=新的Intent(getActivity(),SetAreaActivity.class);
//Bundle extras=新Bundle();
//意图.临时演员(临时演员);
getActivity().startActivity(意图);
}
});
返回设置和布局;
}
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
}
谢谢 尝试重命名您的视图。它与布局的名称相同,因此从
View setting_layout = inflater.inflate(R.layout.setting_layout, container, false);
到
必须确保您的按钮位于setting_layout.xml文件中,id为Button_setting_settingarea
还要确保您的SetAreaActivity已在manifest.xml文件中注册。错误是什么?是否在清单中定义SetAreaActivity?NPE是因为
按钮ICKChangeArea
为空;因此,请检查布局中是否确实存在id为按钮\u设置\u设置区域的视图。如果没有堆栈跟踪,也可能是意图为空。我认为启动活动不需要getActivity()
,请更改getActivity()。startActivity(意图)代码>至起始触觉(意图)代码>和重试名称可能会冲突。这就是为什么.View可以有名称setting\u layout,而且它的布局名称也可以有名称setting\u layout。@PiyushGupta是的,你说得对,但你确定这会导致冲突吗?因为我不认为so@Shayanpourvatan可能是的。因为我看不到任何其他的错误。我在回答中还提到了所有其他问题。
View view = inflater.inflate(R.layout.setting_layout, container, false);
Button buttonClickChangeArea = (Button) view.findViewById(
R.id.Button_setting_settingarea);