Exemple #1
0
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);
  }
}
Exemple #2
0
 private void resetCarList() {
   cars = CarInfo.listAll(CarInfo.class);
   carAdapter.setCars(cars);
   carAdapter.notifyDataSetChanged();
 }