Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
活动崩溃(android碎片)_Android_Fragment - Fatal编程技术网

活动崩溃(android碎片)

活动崩溃(android碎片),android,fragment,Android,Fragment,我今天开始使用android上的碎片(到目前为止我只使用活动),运行应用程序后我崩溃了(实际上它甚至没有启动) 我制作了Init()函数,所有的工作都很好,直到我尝试调用onCreateView()我知道问题一定是我调用该函数的方式。 我将感谢任何帮助 谢谢。调用init()方法时,视图尚未设置。首先膨胀视图,然后将其传递给init()或直接在onCreateView中获取视图。返回方法末尾的膨胀视图 View view = inflater.inflate(R.layout.fragment_

我今天开始使用android上的碎片(到目前为止我只使用活动),运行应用程序后我崩溃了(实际上它甚至没有启动)

我制作了
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中不鼓励使用纯代码答案。已工作!谢谢工作!谢谢