3

我有一个 onClickListener 事件,其中包含一个带有 onClick 事件的 AlertDialog,我想获取父 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) 因为这将应用于以编程方式创建的多个项目

4

2 回答 2

7

改变

public void onClick(View v)

public void onClick(final View v)

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

于 2012-10-16T18:27:46.443 回答
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();


            }
        });
于 2013-01-09T23:58:41.000 回答