相关疑难解决方法(0)

Dialogs/AlertDialogs:如何在对话框启动时"阻止执行"(.NET风格)

来自.NET环境我现在正在寻找了解Dialog如何在Android中运行的方法.

在.NET中,调用MessageBox.Show(...)创建并显示弹出对话框.在对Show的调用中,我可以指定弹出窗口中应该有哪些按钮,例如:

DialogResult myDialogResult = MessageBox.Show("My text here", "My caption here", MessageBoxButtons.YesNoCancel);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当在弹出窗口中按下按钮时,对Show的调用将返回一个DialogResult,通知我单击了哪个按钮.请注意,在.NET中,执行将在调用Show(...)的行中停止,因此它可以在按下按钮时返回值.

如果我在上面的例子中按"否",则myDialogResult将等于

myDialogResult == DialogResult.No
Run Code Online (Sandbox Code Playgroud)

由于我发现使用/创建弹出窗口的.NET方式非常简单直观,我想在Android中创建弹出窗口的方式.

所以,问题是,是否有人知道如何"停止执行",如MessageBox.Show,然后每按一次按钮返回一个值(对话框消失)?

问候


编辑1: 更清楚一点:

我需要执行停止并等到用户选择了一个按钮来单击弹出窗口.显示对话框的调用后面的代码取决于在对话框中单击的按钮.

这就是为什么我不能使用Erich和Alex所建议的,因为在下面建议的onClick方法中编写代码是行不通的.原因是我无法继续"正常执行".让我举一个例子:

让我举一个例子:

int nextStep = 0; // this variable will not be reached from within the onClick-methods

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Hello!")
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                nextStep = 1; // *** COMPILER ERROR!! ***
            }
        })
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int …
Run Code Online (Sandbox Code Playgroud)

android

69
推荐指数
7
解决办法
10万
查看次数

从Thread更新UI

我想从更新Progressbar的Thread更新我的UI.不幸的是,当从"runnable"更新进度条的drawable时,进度条消失了!改变进度onCreate()栏的绘图可用于其他工作!

有什么建议?

public void onCreate(Bundle savedInstanceState) {
    res = getResources();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameone);
    pB.setProgressDrawable(getResources().getDrawable(R.drawable.green)); //**Works**/
    handler.postDelayed(runnable, 1);       
}

private Runnable runnable = new Runnable() {
    public void run() {  
        runOnUiThread(new Runnable() { 
            public void run() 
            { 
                //* The Complete ProgressBar does not appear**/                         
                pB.setProgressDrawable(getResources().getDrawable(R.drawable.green)); 
            } 
        }); 
    }
}
Run Code Online (Sandbox Code Playgroud)

user-interface multithreading android

53
推荐指数
5
解决办法
14万
查看次数

如何在android中创建模态对话框

我想为我的应用程序创建模态对话框.

所以当模态对话框打开时,其他活动被阻止.没有像后退按钮或按下主页按钮那样的事件.

并在该对话框取消和确定两个选项按钮.

谢谢...

android modal-dialog android-ui

15
推荐指数
4
解决办法
5万
查看次数

如何强制主要Acivity在Android中等待子活动?

我称之为主要活动的子活动.这个子活动应该从用户那里拿几个数字(我使用编辑文本控件来实现这一点),将它们保存到另一个类中的静态变量并终止.我希望主要活动等待子活动,但两者都只是同时运行.即使这样做也无济于事:

     Thread t = new Thread(new Runnable(){
     public void run(){
     Log.v("==================", "run "+new Date());
     startActivityForResult(new Intent(ctx,myCustomSubactivity.class),1);  
     } });
     Log.v("==================", "calling run "+new Date());
     t.start();      
     try {
        t.join();
    } catch (InterruptedException e) {Log.v("==================", "can't join");}
    Log.v("==================", "back from activity "+new Date());
Run Code Online (Sandbox Code Playgroud)

你知道如何强迫主要活动等待吗?Android中不支持Thread.wait()方法(程序抛出错误).

android blocking wait subactivity android-activity

6
推荐指数
2
解决办法
3万
查看次数

如何从内部类返回值?

我的代码在这里:

public static boolean showConfirmationDialog(Context context, String title, String dialogContent) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setTitle(title);
        builder.setMessage(dialogContent);
        builder.setPositiveButton("Confirm", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // what to do ?
            }
        });
Run Code Online (Sandbox Code Playgroud)

现在,我想点击"确认"按钮后返回true.那么如何从内部类返回"true" - 方法的OnClickListener.

需要一些帮助,谢谢.

java android

5
推荐指数
1
解决办法
2万
查看次数