2012-04-11 43 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