首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试调用虚拟方法的android.content.Context android.content.Context.getApplicationContext()‘

尝试调用虚拟方法的android.content.Context android.content.Context.getApplicationContext()‘
EN

Stack Overflow用户
提问于 2018-06-21 00:50:05
回答 1查看 908关注 0票数 -1

我的代码遇到了一些问题,出现了这个错误:

代码语言:javascript
运行
复制
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:106)
    at com.uuaba.uuaba.utils.QueryUtils.<init>(QueryUtils.java:23)
    at com.uuaba.uuaba.helper.RVAdapter$1.onClick(RVAdapter.java:132)
    at android.view.View.performClick(View.java:5637)
    at android.view.View$PerformClick.run(View.java:22429)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6119)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

在我的RecyclerView适配器中,我想用下面的代码调用另一个类(QueryUtils.java)的方法:

代码语言:javascript
运行
复制
QueryUtils queryUtils = new QueryUtils();
queryUtils.upgPollAnswer("String1", "String2");

这是我的QueryUtils.java:

代码语言:javascript
运行
复制
public class QueryUtils extends Application{

private String tag_string_req = "req_poll_answer_upg";

// SqLite data management
SQLiteHandler db = new SQLiteHandler(getApplicationContext());
HashMap<String, String> user = db.getUserDetails();
private final String userid = user.get("uid");

public void upgPollAnswer(final String idPoll, final String idAnswer){

    StringRequest strReq = new StringRequest(Request.Method.POST, AppConfig.POLL_ANSWER_UPG, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {

            try {

                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");

                if (!error) {

                    PollActivity pollActivity = new PollActivity();
                    pollActivity.reloadActivity();

                } else {



                }

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {



        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to loading url
            Map<String, String> params = new HashMap<String, String>();
            params.put("userid", userid);
            params.put("id_poll", idPoll);
            params.put("id_answer", idAnswer);

            return params;

        }

    };

    // Adding request to request queue
    AppVolleyController.getInstance().addToRequestQueue(strReq, tag_string_req);

}

}

错误(QueryUtils.java:23)对应于下面这行代码:

代码语言:javascript
运行
复制
SQLiteHandler db = new SQLiteHandler(getApplicationContext());

也许我只是还不明白上下文的含义,但我尝试了不同的解决方案,但都不起作用!

请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 00:59:55

试试这个:

代码语言:javascript
运行
复制
SQLiteHandler db;

@Override 
public void onCreate() {
    super.onCreate() 
    SQLiteHandler db = new SQLiteHandler(getApplicationContext());
     ....rest of db calls..
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50953332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档