kolibri
یک شنبه 30 اردیبهشت 1397, 10:23 صبح
سلام؛
من برای بروزرسانی لیست ویو دارای Adapter مشکل دارم و نمی تونم بعد از حذف یا ویرایش یک آیتم، اون رو بروزرسانی کنم.
متد حذف اطلاعات در اداپتر:
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DBConteroler dbConteroler = new DBConteroler(context);
boolean X = dbConteroler.DeleteBox(individualCar.getPostID());
if (X) {
} else {
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
}
}
});
من برای بروزرسانی از این روش استفاده کرده بودم که بعد از حذف/ویرایش یک آیتم مجددا این متد رو در اکتیویتی مورد نظر فراخوانی می کردم:
public void CreateList() {
ArrayList<Box> boxes = db.getBoxs();
Collections.reverse(boxes);
Adaptorz adaptorz = new Adaptorz(MainActivity.this, R.layout.flod_list, boxes);
adaptorz.notifyDataSetChanged();
LinearLayout ll = (LinearLayout) findViewById(R.id.llMain);
Button btnAdd = (Button) findViewById(R.id.btnAdd);
listView.destroyDrawingCache();
listView.setVisibility(ListView.INVISIBLE);
listView.setVisibility(ListView.VISIBLE);
listView.setAdapter(adaptorz);
}
و این هم خطا:
--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: ir.radin.posto.posto, PID: 13239
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList ir.sto.sto.DBConteroler.getBoxs()' on a null object reference
at ir.sto.sto.MainActivity.CreateList(MainActivity.ja va:69)
at ir.sto.sto.Adaptorz$2.onClick(Adaptorz.java:155)
at android.view.View.performClick(View.java:5685)
at android.view.View$PerformClick.run(View.java:22481 )
at android.os.Handler.handleCallback(Handler.java:751 )
at android.os.Handler.dispatchMessage(Handler.java:95 )
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.jav a:6274)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:776)
البته، فکر می کنم راه من اصولی نیست، بنابراین اگر راه اصولی رو برای بروزرسانی لیست مطرح کنید، متشکرم می شوم.
من برای بروزرسانی لیست ویو دارای Adapter مشکل دارم و نمی تونم بعد از حذف یا ویرایش یک آیتم، اون رو بروزرسانی کنم.
متد حذف اطلاعات در اداپتر:
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DBConteroler dbConteroler = new DBConteroler(context);
boolean X = dbConteroler.DeleteBox(individualCar.getPostID());
if (X) {
} else {
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
}
}
});
من برای بروزرسانی از این روش استفاده کرده بودم که بعد از حذف/ویرایش یک آیتم مجددا این متد رو در اکتیویتی مورد نظر فراخوانی می کردم:
public void CreateList() {
ArrayList<Box> boxes = db.getBoxs();
Collections.reverse(boxes);
Adaptorz adaptorz = new Adaptorz(MainActivity.this, R.layout.flod_list, boxes);
adaptorz.notifyDataSetChanged();
LinearLayout ll = (LinearLayout) findViewById(R.id.llMain);
Button btnAdd = (Button) findViewById(R.id.btnAdd);
listView.destroyDrawingCache();
listView.setVisibility(ListView.INVISIBLE);
listView.setVisibility(ListView.VISIBLE);
listView.setAdapter(adaptorz);
}
و این هم خطا:
--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: ir.radin.posto.posto, PID: 13239
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList ir.sto.sto.DBConteroler.getBoxs()' on a null object reference
at ir.sto.sto.MainActivity.CreateList(MainActivity.ja va:69)
at ir.sto.sto.Adaptorz$2.onClick(Adaptorz.java:155)
at android.view.View.performClick(View.java:5685)
at android.view.View$PerformClick.run(View.java:22481 )
at android.os.Handler.handleCallback(Handler.java:751 )
at android.os.Handler.dispatchMessage(Handler.java:95 )
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.jav a:6274)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:776)
البته، فکر می کنم راه من اصولی نیست، بنابراین اگر راه اصولی رو برای بروزرسانی لیست مطرح کنید، متشکرم می شوم.