コード例 #1
0
  @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;
            }
          }
        });
  }