// On open application create listview, load movie data from file and // show it. protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Loading movie list from the file, if failed - reset the array list. if (FileManager.loadFile(this, FILE_NAME, mMovies) == FileManager.RESULT_ERROR) { mMovies = new ArrayList<>(); } mListViewMovies = (ListView) findViewById(R.id.listViewMainMovies); mEmptyMainMovieList = (TextView) findViewById(R.id.emptyMainMovieList); mTextViewMainTopic = (TextView) findViewById(R.id.textViewMainTopic); // ListView adapter initialising. mMainListAdapter = new MainListAdapter(this, mMovies); mListViewMovies.setAdapter(mMainListAdapter); // On Item click transferring to Editor Screen. mListViewMovies.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { transferToEditorActivity(position); } }); // On Item Long click, open menu for edit and delete options. mListViewMovies.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick( AdapterView<?> parent, View view, final int position, long id) { PopupMenu popupMenu = new PopupMenu(MainActivity.this, view); popupMenu.setOnMenuItemClickListener( new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { // Delete the movie from list and file. case R.id.action_delete: // Open confirmation dialog. new AlertDialog.Builder(MainActivity.this) .setTitle(R.string.dialog_delete_movie_title) .setMessage(R.string.dialog_delete_all_message) .setPositiveButton( R.string.dialog_delete_movie_positive_button_label, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mMovies.remove(position); FileManager.saveFile(MainActivity.this, FILE_NAME, mMovies); mMainListAdapter.notifyDataSetChanged(); } }) .setNegativeButton(R.string.button_cancel_label, null) .create() .show(); break; // Go to Editor activity. case R.id.action_edit: transferToEditorActivity(position); break; } return true; } }); popupMenu.inflate(R.menu.menu_item); popupMenu.show(); return true; } }); mListViewMovies.setEmptyView(mEmptyMainMovieList); }