2012-04-11 48 views
1

當用戶選擇要刪除的項目時,我打開一個alertDialog以確保他想刪除它。當我得到BUTTON_POSITIVE的onClick時,我需要獲取要刪除的文件名。這是打開alertDialog之前已知的。我嘗試使用setButton(BUTTON_POSITIVE,「是」,味精),並在消息中設置文件名,但它不清楚我在哪裏得到的消息?有人可以澄清或提出更好的實施?如何獲得與按下按鈕相關的數據?

下面是點擊刪除按鈕後,運行該代碼:

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 2012-04-11 06:24:22

+0

將代碼添加到問題 – Simon 2012-04-11 06:59:33

+0

是** cs **和** id **您想要在單擊對話框上的按鈕時訪問的值? – waqaslam 2012-04-11 07:05:46

回答

0

首先,定義您的idcs爲:

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

現在只需使用csid對話框按鈕的的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

我試過了,但是我得到以下錯誤:無法引用內部類中的非最終變量id一種不同的方法 – Simon 2012-04-11 07:13:11

+0

看到我更新的答案 – waqaslam 2012-04-11 07:16:07

+0

太好了,謝謝。味精有什麼問題。如何得到它? – Simon 2012-04-11 07:36:17

相關問題