如何在Android上以相同的方法获取和返回用户输入

时间:2012-08-07 14:57:01

标签: java android alertdialog

(我知道这个问题有很多不同的问题,感谢您考虑我的具体情况)。

我正在实施第三方库。其中一种方法需要用户输入,此方法的返回值需要是用户的响应。具体来说,此方法需要弹出一个警告对话框。用户将有3个按钮可供选择,此方法的返回值必须是一个标识用户单击按钮的int。

我实现此功能的唯一方法是从AsyncTask调用此警报方法,然后调用runOnUIThread来弹出警报,然后等待响应。我遇到的情况是从UI线程调用此警报方法的情况。在这种情况下,是否有类似的工作等待响应?

这是我的代码目前的样子......只要从AsyncTask中调用此方法我就好了。但是,我需要能够从UI线程调用它。

public int getInput(final Object [] args)
{
    getActivity().runOnUiThread(new Runnable(){

        @Override
        public void run()
        {
            buildDialog(args).show();
        }
    });

    try
    {
        synchronized(this)
        {
            wait();
        }
    }
    catch (Exception ex)
    {
        return 0;
    }
    return m_Result;
}

public void setRetValue(int result)
{
    m_Result = result;
    synchronized(this)
    {
        notify();
    }
}

(在对话框中按钮的OnClickListeners上从onClick调用setRetValue。)

0 个答案:

没有答案