In HomeActivity
private LongReviewFragment longReviewFragment = new LongReviewFragment();
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
navigationView.setCheckedItem(item);
FragmentTransaction transaction = fragmentManager.beginTransaction();
switch (item.getItemId()) {
case R.id.drawer_mypage:
topAppbar.setTitle("마이페이지");
transaction.replace(R.id.frameLayout, mypageFragment).commitAllowingStateLoss();
break;
case R.id.drawer_long:
topAppbar.setTitle("긴 글 리뷰 게시판");
transaction.replace(R.id.frameLayout, longReviewFragment).commitAllowingStateLoss();
break;
case R.id.drawer_short:
topAppbar.setTitle("짧은 글 리뷰 게시판");
transaction.replace(R.id.frameLayout, shortReviewFragment).commitAllowingStateLoss();
break;
case R.id.drawer_movie:
topAppbar.setTitle("영화");
transaction.replace(R.id.frameLayout, movieFragment).commitAllowingStateLoss();
break;
}
drawrLayout.close();
return false;
}
});
In LongReviewFragment
public class LongReviewFragment extends Fragment {
private RecyclerView recyclerView;
ArrayList<LongReviewDataList> dataLists = new ArrayList<>();
LongReviewBoardRecyclerViewAdapter adapter = new LongReviewBoardRecyclerViewAdapter(dataLists);
@Override
public void onStart() {
super.onStart();
longReviewDataRequest();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_longreview_board, container, false);
recyclerView = view.findViewById(R.id.recyViewLongReviewBoard);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(adapter);
return view;
}
private void longReviewDataRequest(){
RequestQueue Queue = Volley.newRequestQueue(getActivity());
JSONObject jsonObject = new JSONObject();
try {
} catch (Exception e) {
e.printStackTrace();
}
String URL = getString(R.string.server) + getString(R.string.viewLongReviewRecency);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, URL, jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
Log.d(TAG, "onResponse: res:" + response.getString("res"));
if(response.getString("res").equals("200")){
JSONArray dataJsonArray = response.getJSONArray("data");
for(int i = 0; i<dataJsonArray.length(); i++){
JSONObject object = dataJsonArray.getJSONObject(i);
int mbtiNum = object.getInt("user_mbti");
Resources res = getResources();
String[] mbtiArray = res.getStringArray(R.array.mbti_array);
dataLists.add(new LongReviewDataList(object.getString("_id"), object.getString("movie_id"), object.getString("movie_name"),
object.getString("title"), object.getString("user_id"), mbtiArray[mbtiNum],
object.getString("user_nickname"), object.getString("writing")));
}
adapter.notifyDataSetChanged();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
Queue.add(jsonObjectRequest);
}
}
I want to get long review data when open long review fragment page. But LongReviewDataRequest is not working. I get 500 error. It is not server issue. All server is woking well. This type of issue happen in fragment replace logic.
request is not working in "onCreate", "OnCreateView()","onResume() too.