recyclerviewでその名前で項目を並べ替える必要があります。しかし、ヌルポイント例外が発生しています。RecyclerviewでArrayListを並べ替えることができません
これは私のソートクラスです。
public class ItemSorter {
public void sortItemByName(ArrayList<SuggestGetSet> dealer) {
Collections.sort(dealer, new Comparator<SuggestGetSet>() {
@Override
public int compare(SuggestGetSet suggestGetSet, SuggestGetSet t1) {
return suggestGetSet.getName().compareTo(t1.getName());
}
});
}
}
これは私のSuggestGetSetクラスです
public class SuggestGetSet {
String dealer_id, rep_id, dealer_name;
public SuggestGetSet() {
}
public SuggestGetSet(String dealer_id, String id, String name) {
this.dealer_id=dealer_id;
this.rep_id=id;
this.dealer_name=name;
}
public String getId() {
return rep_id;
}
public void setId(String id) {
this.rep_id = id;
}
public String getDealerId() {
return dealer_id;
}
public void setDealerId(String dealer_id) {
this.dealer_id = dealer_id;
}
public String getName() {
return dealer_name;
}
public void setName(String name) {
this.dealer_name = name;
}
}
これは私が私のソート方法を使用しています私の断片クラスです。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_your_dealer_list, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.dealerListRecyclerView);
repNo = UserLogIn.getRepNo();
getJsonRequest();
これは私が名前でソートするために使用していますボタン
sortButton = (Button) view.findViewById(R.id.sortByName);
sortButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
itemSorter.sortItemByName(dealerList);
dlAdapter.notifyDataSetChanged();
Toast.makeText(getActivity(),dealerList.toString(),Toast.LENGTH_SHORT).show();
}
});
return view;
}
private void getJsonRequest() {
final SQLiteHandler sqLiteHandler = new SQLiteHandler(getActivity().getApplicationContext());
Cursor cr = sqLiteHandler.getData(sqLiteHandler);
cr.moveToFirst();
do {
repNo = cr.getString(0);
} while (cr.moveToNext());
cr.close();
CustomJsonObjectRequest request = new CustomJsonObjectRequest(Request.Method.POST, AppConfig.URL_JSON_DEALER_LIST, hashMap, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject jsonObject = new JSONObject(String.valueOf(response));
if (jsonObject.names().get(0).equals("feed")) {
dealerList = parseJsonResponse(response);
dlAdapter.setDealertList(dealerList);
} else {
Toast.makeText(getActivity(), "No Dealers Available", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
/*dealerList = parseJsonResponse(response);
dlAdapter.setDealertList(dealerList);*/
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
hashMap = new HashMap<String, String>();
hashMap.put("repNo", repNo);
return hashMap;
}
};
requestQueue.add(request);
}
private ArrayList<SuggestGetSet> parseJsonResponse(JSONObject response) {
ArrayList<SuggestGetSet> groupList = new ArrayList<>();
if (response != null || response.length() > 0) {
try {
JSONArray arrayDelaers = response.getJSONArray(KEY_FEED_NAME);
for (int i = 0; i < arrayDelaers.length(); i++) {
JSONObject currentObject = arrayDelaers.getJSONObject(i);
String rep = currentObject.getString(KEY_REP_ID);
String name = currentObject.getString(KEY_REP_NAME);
String dealerId = currentObject.getString(KEY_DEALER_ID);
SuggestGetSet delaers = new SuggestGetSet();
delaers.setId(rep);
delaers.setName(name);
delaers.setDealerId(dealerId);
groupList.add(delaers);
}
//Toast.makeText(getApplicationContext(), productList.toString(), Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
return groupList;
}
public static interface ClickListener {
public void onClick(View view, int position);
//public void onLongClick(View view, int position);
}
マイLogCat
04-03 18:18:05.039 6347-6347/com.ceatkelanisrilanka.dushanmadushanka.ceat D/AndroidRuntime: Shutting down VM
04-03 18:18:05.039 6347-6347/com.ceatkelanisrilanka.dushanmadushanka.ceat E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ceatkelanisrilanka.dushanmadushanka.ceat, PID: 6347
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.ceatkelanisrilanka.dushanmadushanka.ceat.ItemSorter.sortItemByName(java.util.ArrayList)' on a null object reference
at com.ceatkelanisrilanka.dushanmadushanka.ceat.fragments.YourDealerListFragment$1.onClick(YourDealerListFragment.java:145)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
あなたの 'logcat'エラーを投稿しますか? – Kathi
スタックトレースを表示します。これは、NULLポインタ例外であることを示すテキストです。 – ElDuderino
'itemSorter'をどこでインスタンス化しましたか? –