首页 文章

如何从自定义对话框获取值到Android应用程序中的主要活动

提问于
浏览
0

在我的活动中,当用户单击文本视图时,将打开自定义对话框 . 在这里,我设置了一些轮式拣选机 . 用户在车轮选择器中设置的值已在自定义对话框中显示为 Headers . 当用户单击“确定”按钮时,对话框将关闭,我希望该 Headers 文本显示在主活动的文本视图中 .

我知道我们可以在activity类中设置初始化变量并在对话框中设置它的值,没什么特别的 . 但我已将自定义对话框编写为单独的类文件,如下所示

bd = (TextView)findViewById(R.id.editText1);
        bd.setOnClickListener(new OnClickListener() 
        {   
            @Override
            public void onClick(View v) 
            {
                CustomizeDialog customizeDialog = new CustomizeDialog(main.this);
                customizeDialog.show();
            }
        });

如何从该类获取值到我的主要活动类...

2 回答

  • 1

    在Activity中创建一个处理程序,并将其传递给将完成工作的对话框 . 像下面的东西

    Handler mHandler = new Handler()
    {
        public void handleMessage(android.os.Message msg)
        {
            super.handleMessage(msg);
    
            switch (msg.what)
            {
            case 1:
                // Do some stuff
                break;
            }
        }
    }
    

    现在传递此处理程序对象

    CustomizeDialog customizeDialog = new CustomizeDialog(main.this, mHandler);
    customizeDialog.show();
    

    如果要设置某个值,请使用此处理程序对象发送它

  • 0

    我找到了一个更好的方法,在我的主要活动中,我已将TextView指定为

    public static TextView bd;
    

    在我的CustomizeDialog类中,当我初始化变量如下

    static String bdDate;

    当我单击确定按钮关闭自定义对话框时,我写了

    close.setOnClickListener(new View.OnClickListener()
             {  
                @Override
                public void onClick(View v) 
                {
                      if (v == close)
                      bdDate = wheelMenu3[getWheel(R.id.p3).getCurrentItem()];
                      main.bd.setText(bdDate);
                      dismiss();
                }
            });
    

相关问题