public class Home extends AppCompatActivity { @Bind(R.id.carList) RecyclerView carList; @Bind(R.id.homeFab) FloatingActionButton homeFab; private List<CarInfo> cars = CarInfo.listAll(CarInfo.class); private CarAdapter carAdapter; private static final String TAG = "Home"; private int selectedPosition; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); ButterKnife.bind(this); Log.d(TAG, "Cars in list: " + cars.size()); // homeFab.attachToListView(carList); LinearLayoutManager llm = new LinearLayoutManager(this); llm.setOrientation(LinearLayoutManager.VERTICAL); carList.setLayoutManager(llm); carAdapter = new CarAdapter(cars, Home.this); carList.setAdapter(carAdapter); registerForContextMenu(carList); carAdapter.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(View view, int position) { Intent carPage = new Intent(getApplicationContext(), CarPage.class); Bundle b = new Bundle(); b.putString("vin", cars.get(position).getVin()); carPage.putExtras(b); startActivity(carPage); } @Override public void onItemLongClick(View view, int position) { Log.d(TAG, "ITEM WAS LONG PRESSED!"); openContextMenu(view); selectedPosition = position; } }); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.cardeletemenu, menu); menu.setHeaderTitle("Delete Car?"); } @Override public boolean onContextItemSelected(MenuItem item) { Log.d( TAG, "Selected position = " + selectedPosition + " and title = " + item.getTitle().toString()); if (item.getTitle().equals("Delete Car")) { cars.get(selectedPosition).delete(); resetCarList(); } else { return false; } return true; } @Override protected void onResume() { super.onResume(); Log.d(TAG, "onResume Called"); resetCarList(); } private void resetCarList() { cars = CarInfo.listAll(CarInfo.class); carAdapter.setCars(cars); carAdapter.notifyDataSetChanged(); } @OnClick(R.id.homeFab) public void addCar(View view) { Intent carAddPage = new Intent(getApplicationContext(), CarSetUp.class); startActivityForResult(carAddPage, 0); } }
private void resetCarList() { cars = CarInfo.listAll(CarInfo.class); carAdapter.setCars(cars); carAdapter.notifyDataSetChanged(); }