2015-05-17 2 views
0

У меня есть AlertDialog с GridView, чтобы выбрать цвет, теперь я хочу закрыть AlertDialog, когда элемент click. Как я могу сделать?Android GridView item click Alert Dialog

private void Alert_Colori() { 
    final AlertDialog.Builder customDialog = new AlertDialog.Builder(this);   
    LayoutInflater inflater = this.getLayoutInflater(); 
    View view = inflater.inflate(R.layout.color_picker, null); 

    GridView gridViewColors = (GridView) view.findViewById(R.id.gridViewColors); 
    gridViewColors.setAdapter(new ColorPickerAdapter(this)); 

    gridViewColors.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     //here close the dialog 
     } 
    }); 

    customDialog.setView(view); 
    customDialog.setNegativeButton("Annulla", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int arg1) { 
      dialog.dismiss(); 

     } 
    }); 
    customDialog.setView(view); 
    customDialog.show(); 
} 

ответ

0

First Добавить

final Dialog dialog = customDialog .create(); 

после строки

final AlertDialog.Builder customDialog = new AlertDialog.Builder(this); 

А затем добавить это в вашем коде

dialog.dismiss(); 

в

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    //here close the dialog 
} 

т.е. ваш код ItemClickListener будет следующим

gridViewColors.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      dialog.dismiss(); 
     } 
}); 

Кроме того, пожалуйста, помните изменить customDialog.show(); к dialog.show()

+0

Нет, ошибка: 'создать локальную переменную dialog' – user2847219

+0

Смотрите мой отредактированный ответ @ user2847219 – Lal

+0

Диалог не закрывает – user2847219

0

ли это - customDialog.dismiss();

И попробуйте изменить

final AlertDialog.Builder customDialog = new AlertDialog.Builder(this); 

в

final AlertDialog customDialog = new AlertDialog.Builder(this); 

в исходном коде, как это -

private void Alert_Colori() { 
final AlertDialog customDialog = new AlertDialog.Builder(this);   
LayoutInflater inflater = this.getLayoutInflater(); 
View view = inflater.inflate(R.layout.color_picker, null); 

GridView gridViewColors = (GridView) view.findViewById(R.id.gridViewColors); 
gridViewColors.setAdapter(new ColorPickerAdapter(this)); 

gridViewColors.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    //here close the dialog 
    customDialog.dismiss(); 
    } 
}); 

customDialog.setView(view); 
customDialog.setNegativeButton("Annulla", new DialogInterface.OnClickListener() { 

    @Override 
    public void onClick(DialogInterface dialog, int arg1) { 
     dialog.dismiss(); 

    } 
}); 
customDialog.setView(view); 
customDialog.show(); 
} 
+0

ошибка: «ввести локальную переменную» – user2847219

+0

проверить отредактированный ответ. – NarendraJi

+0

'Не удается разрешить метод увольнять()' – user2847219