无法在片段类中传递上下文

时间:2017-02-16 08:35:41

标签: android android-fragments android-context

我有以下代码,我想将上下文作为第一个参数传递但我不能尝试从网络中获取所有可能的答案,例如:getActivity()getContext()thisgetActivity().getApplicationContext()

没有任何作用,我的应用因异常而崩溃:|我的类是从片段

扩展而来的
public void onClick(View v) {
    HashMap postData = new HashMap();
    PostResponseAsyncTask task = new PostResponseAsyncTask(this,postData);
    task.execute("http://ashna.netau.net/A_location.php");
}

3 个答案:

答案 0 :(得分:0)

您的函数onClick()可能位于实现接口View.OnClickListener的对象中,该接口不包含getActivity()getContext()等函数。 请尝试以下方法:

final Context context = getActivity();
View.OnCLickListner mListener = new View.OnClickListener() {
    public void onClick(View v) {
        HashMap postData = new HashMap();
        PostResponseAsyncTask task = new PostResponseAsyncTask(context,postData);
        task.execute("http://ashna.netau.net/A_location.php");
    }
}

答案 1 :(得分:0)

试试这个:

PostResponseAsyncTask task = new PostResponseAsyncTask(v.getContext(),postData);

答案 2 :(得分:0)

您可以创建应用程序类并在其中创建应用程序变量的全局实例。因此,您可以从应用程序的任何位置访问应用程序上下文。