2014-02-06 7 views
1
mGridView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> gridView, View view, 
      int pos, long id) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setView(view); 
     builder.create().show();   

    } 
}); 

Когда я пытаюсь запустить этот код, после того, как я нажимаю на элемент, я получаю исключение:Как показать изображение из GridView в AlertDialog?

enter image description here

Я не хочу, чтобы удалить вид из его родителей. Я просто хочу показать изображение в AlertDialog. Может ли кто-нибудь дать мне подсказку, как это сделать?

ответ

1

попробовать это ...

mGridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> gridView, View view, 
       int pos, long id) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
      ImageView imageView = new ImageView(gridView.getContext()); 
      imageView.setScaleType(ImageView.ScaleType.CENTER); 
      view.setDrawingCacheEnabled(true); 
      view.buildDrawingCache(); 
      Bitmap bitmap = view.getDrawingCache(); 
      imageView.setImageBitmap(bitmap); 
      builder.setView(imageView); 
      builder.create().show(); 
     } 
    }); 
0

Если вы просто хотите, чтобы показать изображение, то Вы можете установить

builder .setIcon(R.drawable.ic_launcher); 

Тогда вам не нужно setView.

Так удалить эту строку:

builder.setView(view); 
Смежные вопросы