所以我的代码崩溃了bug
,因为我在outer
的{{1}}课程中调用方法。
所以这是我的简单课程:
onPostExecute
所以public class UsersList extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
}
public void callMe(){
Toast.makeText(getContext(), "I work", Toast.LENGTH_LONG).show();
}
public class UserRecommend extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
...
}
@Override
protected void onPostExecute(String data) {
// The line below crashes with NullPointerException
UsersList.this.callMe();
}
}
}
是UserRecommend
中的内部类,所以我调用了UsersList
方法,它正在崩溃。我的callMe()
类outer
中的任何方法都崩溃了。我知道我可以直接打印UsersList
,但我不想,因为我有一个更复杂的方法。我该如何解决这个问题,我需要调用toast
类
编辑:
我找到了主outer
- 但我不知道如何修复它。基本上,我有一个自定义的recyclerview适配器,bug
有一个cardview
按钮。当用户单击recommend
按钮时,它会调用一个处理recommend
内容的方法并调用db
方法。我觉得这就是问题所在,但我在这里定义了populate
动作:
button
上述方法位于我的 @Override
public void onBindViewHolder(final RecyclerViewHolder holder, int position) {
holder.recommendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UsersList usersList = new UsersList();
UsersList.UsersRecommend usersRecommend = usersList.new UsersRecommend(usersList);
usersRecommend.execute();
}
});
}
课程中,CustomAdapter
在该课程中定义,而不是我的主要button
课程
堆栈追踪:
UsersList
因为我从另一个CustomAdapter类调用java.lang.NullPointerException
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:43)
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:78)
at lukazs.usersapp.UsersList.getRView(UsersList.java:186)
at lukazs.usersapp.UsersList.callMe(UsersList.java:161)
at lukazs.usersapp.UsersList$UserRecommend.onPostExecute(UsersList.java:459)
at lukazs.usersapp.UsersList$UserRecommend.onPostExecute(UsersList.java:431)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
类,我相信它正在失去活动。
它崩溃在这条特定的线上:
UserRecommend
这是我调用此函数的代码:
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());