2013-11-23 4 views
0

Я пытаюсь удалить элемент из созданного списка, щелкнув изображение. Я хочу только установить конкретное представление изображения для выполнения этой задачи. (на данный момент не отвечает вообще)Удалить элемент из списка, щелкнув ImageView

В то же время, если пользователь будет щелкать по другому изображению в одном и том же элементе списка, он откроет новое действие. Вот код:

private void registerClickCallBack() { 
    // TODO Auto-generated method stub 

    ListView list = (ListView) findViewById(R.id.lvMyDiaryFood); 
    /*nextImage.setOnClickListener(new AdapterView.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

     } 

    });*/ 
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View viewClicked, 
       int position, long id) { 
      // TODO Auto-generated method stub 
      MyDiaryConsumedFoodListItem clickedRecName = myConsumedFood 
        .get(position); 
      String message = "" + clickedRecName.getRecipe_name_diary(); 
      // String message = "You clicked position " + position 
      // + " of which recipe name is " + clickedFav.getRecipe_name(); 
      Toast.makeText(MyDiaryConsumedFood.this, message, 
        Toast.LENGTH_SHORT).show(); 
      // Can use also: Toast.makeText(getApplicationContext(), 
      // message, Toast.LENGTH_LONG).show(); 

      String rec_name = myConsumedFood.get(position) 
        .getRecipe_name_diary(); 
      String rec_id = myConsumedFood.get(position).getRecipeId(); 

       Intent i = new 
      Intent(MyDiaryConsumedFood.this,RecipesDetails.class); 
      i.putExtra("rec_name", recipe_name); 
      System.out.println(rattype); 
      i.putExtra("rec_id", recipe_id); 

      startActivity(i); 


      deleteView = (ImageView) findViewById(R.id.ivDeleteMyDiary); 
      deleteView.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        AlertDialog.Builder builder = new AlertDialog.Builder(getBaseContext()); 
        builder.setMessage("Do you want to remove?"); 
        builder.setCancelable(false); 
        builder.setPositiveButton("Yes", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            //List<String> addedRecipe = _AddedRecipeToADay.get(_DayOfTheWeekHeader.get(groupPosition)); 


            //addedRecipe.remove(childPosition); 

            //plannerCalendar.deleteRecipeFromADay(recipeID, _DayOfTheWeekHeader.get(groupPosition)); 
            //_DayOfTheWeekHeader.get(groupPosition) = date("Mon 04/11/2013") 
            //_AddedRecipeToADay.get(_DayOfTheWeekHeader.get(groupPosition)).get(childPosition) = Recipe Name in the selected position 


            //notifyDataSetChanged(); 
           } 
          }); 
        builder.setNegativeButton("No", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 

            dialog.cancel(); 
            dialog.dismiss(); 
           } 
          }); 
        AlertDialog alertDialog = builder.create(); 
        try { 
        alertDialog.show(); 
        } catch(Exception e){ 
          // WindowManager$BadTokenException will be caught and the app would not display 
          // the 'Force Close' message 
         } 
       } 

      }); 

     } 

    }); 

} 

Не знаю, почему удаление не отвечает .......

ответ

0

Ваша проблема заключается в startActivity (I) вызывается при вызове startActivity другой деятельности прервала выполнение всего последующего кода;

Мое предложение;

private void registerClickCallBack() { 
// TODO Auto-generated method stub 

ListView list = (ListView) findViewById(R.id.lvMyDiaryFood); 
/*nextImage.setOnClickListener(new AdapterView.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 

});*/ 
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View viewClicked, 
      int position, long id) { 
     // TODO Auto-generated method stub 
     MyDiaryConsumedFoodListItem clickedRecName = myConsumedFood 
       .get(position); 
     String message = "" + clickedRecName.getRecipe_name_diary(); 
     // String message = "You clicked position " + position 
     // + " of which recipe name is " + clickedFav.getRecipe_name(); 
     Toast.makeText(MyDiaryConsumedFood.this, message, 
       Toast.LENGTH_SHORT).show(); 
     // Can use also: Toast.makeText(getApplicationContext(), 
     // message, Toast.LENGTH_LONG).show(); 

     String rec_name = myConsumedFood.get(position) 
       .getRecipe_name_diary(); 
     String rec_id = myConsumedFood.get(position).getRecipeId();   


     deleteView = (ImageView) findViewById(R.id.ivDeleteMyDiary); 
     deleteView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       AlertDialog.Builder builder = new AlertDialog.Builder(getBaseContext()); 
       builder.setMessage("Do you want to remove?"); 
       builder.setCancelable(false); 
       builder.setPositiveButton("Yes", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           //List<String> addedRecipe = _AddedRecipeToADay.get(_DayOfTheWeekHeader.get(groupPosition)); 


           //addedRecipe.remove(childPosition); 

           //plannerCalendar.deleteRecipeFromADay(recipeID, _DayOfTheWeekHeader.get(groupPosition)); 
           //_DayOfTheWeekHeader.get(groupPosition) = date("Mon 04/11/2013") 
           //_AddedRecipeToADay.get(_DayOfTheWeekHeader.get(groupPosition)).get(childPosition) = Recipe Name in the selected position 


           //notifyDataSetChanged(); 
          } 
         }); 
       builder.setNegativeButton("No", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 

           dialog.cancel(); 
           dialog.dismiss(); 
          } 
         }); 
       AlertDialog alertDialog = builder.create(); 
       try { 
       alertDialog.show(); 
       } catch(Exception e){ 
         // WindowManager$BadTokenException will be caught and the app would not display 
         // the 'Force Close' message 
        } 
      } 

     }); 

     Intent i = new 
     Intent(MyDiaryConsumedFood.this,RecipesDetails.class); 
     i.putExtra("rec_name", recipe_name); 
     System.out.println(rattype); 
     i.putExtra("rec_id", recipe_id); 

     startActivity(i); 
    } 

}); 

}

+0

оно не»работа .... Я не получаю какие-либо действия при нажатии кнопки Удалить – Alfie

Смежные вопросы