2012-04-11 3 views
1

Когда пользователь выбирает элемент для удаления, я открываю alertDialog, чтобы убедиться, что он хочет его удалить. Когда я получаю onClick для BUTTON_POSITIVE, мне нужно удалить имя файла. Это было известно, прежде чем открыть alertDialog. Я попытался использовать setButton (BUTTON_POSITIVE, «Да», msg) и установить имя файла в сообщении, но мне не ясно, где я получу сообщение? Может ли кто-нибудь уточнить или предложить более эффективную реализацию?Как получить данные, связанные с нажатой кнопкой?

Вот код, который запускается после нажатия кнопки удаления:

public void OnClick(View v) 
{ 
    Button b = (Button)v; 
    CharSequence cs = b.getText(); 
    int id = Integer.parseInt(cs.toString()); 

    AlertDialog alertDialog; 
    Message msg = new Message(); 
    msg.arg1 = id; 

    AlertDialog deleteAlert = new AlertDialog.Builder(this).create(); 
    deleteAlert.setTitle("Trigger Remove Alert"); 
    deleteAlert.setMessage("Are you sure you want to remove this trigger?"); 
    deleteAlert.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", msg); 
    deleteAlert.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", new OnClickListener(){ 

    @Override 
    public void onClick(DialogInterface dialog, int which) {    
    //remove Trigger 
     //boolean b = RemoveTriggerPOI(aid, id); 
    } 
    }); 
    deleteAlert.setButton2("No", new OnClickListener(){ 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 
    //... 
    } 
    }); 
    deleteAlert.show(); 



} 
+0

его легко показать нам код, чтобы мы могли предложить, что делать – waqaslam

+0

добавлен код на вопрос – Simon

+0

** cs ** и ** id ** значения, которые вы хотите получить при нажатии кнопки на диалоговом окне? – waqaslam

ответ

0

Во-первых, определить ваш id или cs как:

final int id = Integer.parseInt(cs.toString()); 
final CharSequence cs = b.getText(); 

Теперь просто использовать cs и id внутри кнопки Диалог OnClick слушатель:

deleteAlert.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", new OnClickListener(){ 

    @Override 
    public void onClick(DialogInterface dialog, int which) {    
     //remove Trigger 
     //boolean b = RemoveTriggerPOI(aid, id); 

     //SIMPLY USE id OR cs HERE. IT SHOULD WORK 
    } 
    }); 
+0

Я пробовал, но я получаю следующую ошибку: не могу ссылаться на неопределенный идентификатор переменной внутри внутреннего класса, определенного в другой метод – Simon

+0

см. мой обновленный ответ – waqaslam

+0

Отлично, спасибо. В чем проблема с MSG. Как это можно получить? – Simon

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