Помогите , кто знает
получается так, что список заполняется из бд, но если я удаляю строчку в базе данных, то в списке ничего не меняется, пока не перейдёшь в другое активити и обратно ( тоесть нажал кнопку, в бд произошло изменение, а список остался таким , как и был. Но если я запущу активити заного , то изменение происходит) ... как можно сделать динамическое изменение списка ?
public class Korzina extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, View.OnClickListener {
private SwipeLayoutAdapterKorz mAdapter;
private ListView mListView;
Korz mData= new Korz();
ImageButton button,button2,button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_korzina);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
button = (ImageButton) findViewById(R.id.button);
button2 = (ImageButton) findViewById(R.id.button2);
button3 = (ImageButton) findViewById(R.id.button3);
button.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
List<Korz> mData = Korz.listAll(Korz.class);//это список , который берётся из бд
mListView = (ListView)findViewById(R.id.listView);
mAdapter = new MyAdapater(this,R.layout.item_korz,R.layout.item_action,mData);
mListView.setAdapter(mAdapter);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
class MyAdapater extends SwipeLayoutAdapterKorz<Korz>
{
private List<Korz> _data;
ArrayList objects;
public MyAdapater(Activity context, int contentViewResourceId, int actionViewResourceId, List<Korz> objects)
{
super(context,contentViewResourceId,actionViewResourceId,objects);
_data = objects;
}
@Override
public void setContentView(View contentView, int position, HorizontalScrollView parent) {
Korz p=((Korz) getItem(position));
TextView pricecent = (TextView)contentView.findViewById(R.id.pricecent);
pricecent.setText(p.price+"руб");
TextView tv1 = (TextView)contentView.findViewById(R.id.name);
tv1.setText(p.name);
ImageView tv3 = (ImageView) contentView.findViewById(R.id.imageView2);
int resID = getResources().getIdentifier(String.valueOf(p.image), "drawable", getApplicationContext().getPackageName());
tv3.setImageResource(resID);
}
//实现setActionView方法
@Override
public void setActionView(final View contentView,final int position, final HorizontalScrollView parent) {
Korz p=((Korz) getItem(position));
final String name = p.name;
contentView.findViewById(R.id.action).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Korz.deleteAll(Korz.class, "name = ?", name);//по нажатию этой кнопки строка в бд удаляется
}
});
}
}
}