1

通过按下“ok_button”关闭此对话框后,我试图更改文本视图中的文本。但我想循环进行。我将“alleroclosed”设置为布尔值并将其初始化为假。在我按下“ok_button”后,循环不会启动,或者它不会使用我的布尔变量“alleroclosed”

{ 
     Button ok_button = (Button) dialog.findViewById(R.id.Ok_button);
     ok_button.setOnClickListener(
         new OnClickListener() 
         {
             @Override
             public void onClick(View v) 
             {
                 alleroclosed=true;
                 dialog.dismiss();
             }
         });

     if(alleroclosed) 
     {
         alleroclosed=false;
         alleroSTATUS.setText("it works");
     }
}

======== 它不会将字符串更改为“它可以工作”

如果您能以任何方式帮助我,我将不胜感激。我是一个真正的新手。谢谢!

4

3 回答 3

0

仅当单击“确定”按钮时,布尔值才会设置为 true。该if块在您创建和注册监听器后立即执行。

onClick()如果您希望在单击确定按钮时执行此代码,则 if vlock 的内容应该在侦听器的方法中。

于 2013-03-15T22:37:52.650 回答
0

我认为这个问题是你在打电话

if (alleroclosed) {
  alleroclosed=false;
  alleroSTATUS.setText("it works");
}

在方法之外,onClick()因此它永远不会被应用。

您的代码块直接放置在 onCreate() 方法中,并且在捕获单击事件时不会调用此方法,因此它仅应用一次 - 当 onCreate() 被调用时 alleroclosed = false。

所以当你把它放在onClick()方法中时它会起作用。

...
public void onClick(View v) {
   alleroclosed = true;
   dialog.dismiss();
   if (alleroclosed) {
      alleroclosed=false;
      alleroSTATUS.setText("it works");
   }
...

}

于 2013-03-15T22:38:13.490 回答
0

您要在单击按钮时执行的任务应该写在 onClick() 方法中...在上面的代码中,如果您在单击按钮时对话框关闭后要调用...所以只需将您的 onclick() 设置为以下

public void onClick(View v) {
dialog.dismiss();
if (somecondition) {
  // task you want to do...
}
}

以下链接讨论了使用 onClick() 的方法 如何处理在 Android 中单击的按钮? 希望它有效...

于 2013-03-15T23:17:46.540 回答