活动崩溃(android碎片)
我今天开始使用android上的碎片(到目前为止我只使用活动),运行应用程序后我崩溃了(实际上它甚至没有启动) 我制作了活动崩溃(android碎片),android,fragment,Android,Fragment,我今天开始使用android上的碎片(到目前为止我只使用活动),运行应用程序后我崩溃了(实际上它甚至没有启动) 我制作了Init()函数,所有的工作都很好,直到我尝试调用onCreateView()我知道问题一定是我调用该函数的方式。 我将感谢任何帮助 谢谢。调用init()方法时,视图尚未设置。首先膨胀视图,然后将其传递给init()或直接在onCreateView中获取视图。返回方法末尾的膨胀视图 View view = inflater.inflate(R.layout.fragment_
Init()
函数,所有的工作都很好,直到我尝试调用onCreateView()
我知道问题一定是我调用该函数的方式。
我将感谢任何帮助
谢谢。调用init()方法时,视图尚未设置。首先膨胀视图,然后将其传递给init()或直接在onCreateView中获取视图。返回方法末尾的膨胀视图
View view = inflater.inflate(R.layout.fragment_main, container, false);
login= (TextView) view.findViewById(R.id.textView11_linkRegister);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//intent means what i want to do'
Intent openLoginForm = new Intent(getActivity(),Login.class);
startActivity(openLoginForm);
}
});
return view;
调用init()方法时尚未设置视图。首先膨胀视图,然后将其传递给init()或直接在onCreateView中获取视图。返回方法末尾的膨胀视图
View view = inflater.inflate(R.layout.fragment_main, container, false);
login= (TextView) view.findViewById(R.id.textView11_linkRegister);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//intent means what i want to do'
Intent openLoginForm = new Intent(getActivity(),Login.class);
startActivity(openLoginForm);
}
});
return view;
无法访问尚不存在的视图,请按如下方式重写代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_main,container,false);
init(v);//----> PROBLEM HERE
return v;
}
public TextView login;
/** Called when the user clicks link for Login/Register on right corner of the app*/
public void init(View v) {
login=(TextView) v.findViewById(R.id.textView11_linkRegister);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//intent means what i want to do'
Intent openLoginForm = new Intent(getActivity(),Login.class);
startActivity(openLoginForm);
}
});
}
无法访问尚不存在的视图,请按如下方式重写代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_main,container,false);
init(v);//----> PROBLEM HERE
return v;
}
public TextView login;
/** Called when the user clicks link for Login/Register on right corner of the app*/
public void init(View v) {
login=(TextView) v.findViewById(R.id.textView11_linkRegister);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//intent means what i want to do'
Intent openLoginForm = new Intent(getActivity(),Login.class);
startActivity(openLoginForm);
}
});
}
要解释其他答案编写的代码,在
onCreateView()
完成之前,不能调用getView()
。正如您在他们的代码建议中所看到的,您必须findViewById()
查看您已膨胀的视图(您将返回该视图)。当您返回此膨胀视图时,它将在以后的生命周期方法中可用,方法是调用getView()
来解释其他答案编写的代码,在onCreateView()
完成之前,您不能调用getView()
。正如您在他们的代码建议中所看到的,您必须findViewById()
查看您已膨胀的视图(您将返回该视图)。当您返回此膨胀视图时,它将在以后的生命周期方法中可用,方法是调用getView()
在SO中不鼓励使用纯代码答案。在SO中不鼓励使用纯代码答案。已工作!谢谢工作!谢谢