我有一个片段,当我单击线性布局时,我想显示一个对话框,但当我试图找到白痴的LinearLayout时,我遇到了一个NullPointer异常,这是我的代码,有人可以帮我吗?感谢
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.preferencias, container, false);
LinearLayout idioma_layout= (LinearLayout) getView().findViewById(R.id.idioma_layout);
idioma_layout.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.language_prompt);
builder.setItems(R.array.languages, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// Do something with the selection
switch (item) {
case 0:
Toast.makeText(getActivity(), "Español", Toast.LENGTH_LONG).show();
savePreferences("idioma","es");
break;
case 1:
Toast.makeText(getActivity(), "Inglés", Toast.LENGTH_LONG).show();
savePreferences("idioma","en");
break;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
setHasOptionsMenu(true);
return view;
不能在onCreateView()
中使用getView()
方法。视图尚未创建,在这种情况下getView()
返回null。
不过,您已经必须使用这种方法进行查看(您只是将其扩展到view
变量中(:
View view = inflater.inflate(R.layout.preferencias, container, false);
LinearLayout idioma_layout= (LinearLayout) view.findViewById(R.id.idioma_layout);