@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_favorites); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setTitle("My Favorites"); /** **************************************************** */ db = new MyDBHandler(this, null, null, 1); favList = (ArrayList<Article>) db.favoritesToArray(); arrayAdapter = new MyAdapter(getBaseContext(), R.layout.single_row, favList); listView = (ListView) findViewById(R.id.listView); listView.setAdapter(arrayAdapter); // LONG PRESS ITEM -> DELETE listView.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { final Article currentArticle = (Article) parent.getItemAtPosition(position); AlertDialog.Builder builder = new AlertDialog.Builder(MyFavoritesActivity.this); builder.setTitle("Delete Favorite"); builder.setMessage("Are you sure you want to delete this article from favorites?"); builder.setPositiveButton( android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // continue with delete db.unsetFavorite(currentArticle.getLinkRef()); favList = (ArrayList<Article>) db.favoritesToArray(); // recreate the adapter in order to refresh the list MyAdapter tmpAdapter = new MyAdapter(getBaseContext(), R.layout.single_row, favList); tmpAdapter.notifyDataSetChanged(); listView.setAdapter(tmpAdapter); arrayAdapter = tmpAdapter; } }); builder.setNegativeButton( android.R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // do nothing } }); builder.setIcon(android.R.drawable.stat_notify_error); AlertDialog alert = builder.create(); alert.show(); return false; } }); // SHORT PRESS ITEM -> OPEN LINK listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final Article currentArticle = (Article) parent.getItemAtPosition(position); switch (currentArticle.getHeader()) { case "Gazzetta dello Sport": Intent iGazzetta = new Intent(getBaseContext(), GazzettaActivity.class); iGazzetta.putExtra("title", currentArticle.getTitle()); iGazzetta.putExtra("article", currentArticle.getLinkRef()); iGazzetta.putExtra("image", currentArticle.getImageRef()); startActivity(iGazzetta); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; case "Sport Mediaset": Intent iSportMediaset = new Intent(getBaseContext(), SportMediasetActivity.class); iSportMediaset.putExtra("title2", currentArticle.getTitle()); iSportMediaset.putExtra("article2", currentArticle.getLinkRef()); iSportMediaset.putExtra("image2", currentArticle.getImageRef()); startActivity(iSportMediaset); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; case "Tuttosport": Intent iTuttosport = new Intent(getBaseContext(), TuttosportActivity.class); iTuttosport.putExtra("title3", currentArticle.getTitle()); iTuttosport.putExtra("article3", currentArticle.getLinkRef()); iTuttosport.putExtra("image3", currentArticle.getImageRef()); startActivity(iTuttosport); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; case "Corriere dello Sport": Intent iCorriere = new Intent(getBaseContext(), CorriereActivity.class); iCorriere.putExtra("title4", currentArticle.getTitle()); iCorriere.putExtra("article4", currentArticle.getLinkRef()); iCorriere.putExtra("image4", currentArticle.getImageRef()); startActivity(iCorriere); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; } } }); }