public class JsonViewpager {
private VolleySingleton mVolleySingleton;
private ViewpagerAdapter mViewpagerAdapter;
private RequestQueue mRequestQueue;
private String mUrl;
private ArrayList<QuestionData> mQuestionDataArrayList = new ArrayList<QuestionData>();
public JsonViewpager(ViewpagerAdapter viewpagerAdapter,String url){
mViewpagerAdapter=viewpagerAdapter;
mUrl=url;
}
public void JsonRequestMethod() {
mVolleySingleton = VolleySingleton.getInstance();
mRequestQueue = mVolleySingleton.getRequestQueue();
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, mUrl, (String) null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Parse parseJSONResponse=new Parse();
mQuestionDataArrayList = parseJSONResponse(response);
mViewpagerAdapter.setBloglist(mQuestionDataArrayList);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
mRequestQueue.add(request);
}
}
私はviewPagerAdapterを渡している別のクラスを持っています。なぜなら何らかの理由で他のクラスのonCreateViewのviewPagerAdapterを設定していて、mViewpagerAdapter.setBloglist(mQuestionDataArrayList);ライン。誰がこれを引き起こしているか知っていますか?customAdapterを渡そうとするとヌルポインタ例外が発生しますか?
ホームクラス
public class Home extends Fragment {
private static final int REFRESH_DELAY=500;
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
//URL reflects ordered list on server filter terms {"include": {"relation": "questions", "scope": {"order" : "points DESC"}}})
private static final String URL_HOME="hiddenUrl";
private String mParam1;
private String mParam2;
private ImageView mImageView;
private VolleySingleton mVolleySingleton;
private RequestQueue mRequestQueue;
private RecyclerView mRecyclerView;
private ArrayList<QuestionData> mListblogs = new ArrayList<>();
private ArrayList<QuestionData> mQuestionDataArrayList = new ArrayList<QuestionData>();
private PullToRefreshView mPullToRefreshView;
private ViewpagerAdapter mViewpagerAdapter;
public static Home newInstance(String param1, String param2) {
Home fragment = new Home();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
public Home() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
//If you wish to handle you event source in the activity main thread, you’ll need to add the following instructions at the beginning of the onCreate() android callback:
System.out.println("userId" + Login.getUserId());
System.out.println("username" + Login.getUserName());
JsonViewpager s=new JsonViewpager(mViewpagerAdapter,URL_HOME);
s.JsonRequestMethod();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
mRecyclerView = (RecyclerView) view.findViewById(R.id.fragment_dashboard_recycler);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewpagerAdapter = new ViewpagerAdapter(getActivity());
mRecyclerView.setAdapter((mViewpagerAdapter));
mPullToRefreshView = (PullToRefreshView) view.findViewById(R.id.pull_to_refresh);
mPullToRefreshView.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
@Override
public void onRefresh() {
mPullToRefreshView.postDelayed(new Runnable() {
@Override
public void run() {
mPullToRefreshView.setRefreshing(false);
JsonRequestMethod();
}
}, REFRESH_DELAY);
}
});
return view;
}
}
唯一の方法です。 –
私はそれがヌル参照を渡していると思いますが、理由は分かりません。 – Eli
たとえば、null参照を渡しているクラスにこのリクエストを入れた場合、それは – Eli