onClickListener中的Android AlertDialog获取父视图

时间:2012-10-16 18:25:13

标签: android alertdialog onclicklistener

我有一个包含带有onClick事件的AlertDialog的onClickListener事件,我想获取父onClick事件视图,例如:

View.OnClickListener listener = new View.OnClickListener(){
    public void onClick(View v){
        //need to pass v to alert's onClickListener
        AlertDialog.Builder alert = new AlertDialog.Builder(MyClass.this);
        alert.setPositiveButton("Go", new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface dialog,int which){
                //need parent onClick's View as v
                String str = v.getTag().toString();
                Toast.makeText(getApplicationContext(),str,Toast.LENGTH_SHORT).show();
            }
        });
    }
};

知道怎么做到这一点?我无法在onclicklistener中调用(View)findViewById(id),因为这将应用于以编程方式创建的多个项目

2 个答案:

答案 0 :(得分:7)

变化

public void onClick(View v)

public void onClick(final View v)

这将允许您访问对话框按钮的onClickListener中的单击视图。

答案 1 :(得分:0)

你忘了打电话了

alert.show();

没有这个,对话框将不会显示

完整源代码:

    someViewItem.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {


                AlertDialog.Builder alert = new AlertDialog.Builder(MyActivity.this);
                alert.setMessage("abcd");
                alert.setPositiveButton("Go",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {

                                String str = "aaa";
                                Toast.makeText(getApplicationContext(),
                                        str, Toast.LENGTH_SHORT).show();
                            }
                        });
                alert.show();


            }
        });