Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不正确地使用;“当”时;方法_Android_Do While - Fatal编程技术网

Android 不正确地使用;“当”时;方法

Android 不正确地使用;“当”时;方法,android,do-while,Android,Do While,我正在尝试创建一个重复循环,以便在单个文本视图中显示不断增加的数字 总的想法是这样的 .... int rep = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.Layout); do { meth(); } while (rep < 11); }

我正在尝试创建一个重复循环,以便在单个文本视图中显示不断增加的数字

总的想法是这样的

....
int rep = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.Layout);

   do { meth(); } while (rep < 11);

   }


      private void meth() {
      final TextView textv = (TextView) findViewById( R.id.tex );

      String srep = Integer.toString(rep);
      textv.setText(srep);

      if(rep <11) { rep = rep +1; }
                          }
     ....
。。。。
int rep=1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
do{meth();}while(rep<11);
}
私有无效meth(){
最终TextView textv=(TextView)findViewById(R.id.tex);
字符串srep=Integer.toString(rep);
textv.setText(srep);
如果(rep试试这个

private class MethTask extends AsyncTask<String, String, String> {

 protected String doInBackground(String... urls) {
    do { meth(); SystemClock.sleep(1000);
    } while (rep < 11);
     return "";
 }
}

首先,您不能将此代码运行到oncreate中,否则您将看不到任何内容,因为oncreate是在呈现活动之前运行的。 因此,您应该首先创建一个CountownTimer,在onStart方法中以以下方式启动它:

handler.postDelayed(new Runnable() {
    startCountDown();
}, 1000);
这样,您将确保活动已显示

更新
如果使用
CountownTimer
则无需调用sleep或其他类似方法

为什么要使用meth创建TextView?请在循环之前创建它。因为从1到10的增量发生在不到一秒钟的时间内,因为我知道您需要睡眠(1000);或类似于do body中的内容。您可以使用sleep在每个增量中放置一些暂停,只需将行放在do{}中即可,即do{SystemClock.sleep(1000);meth();}当…单击活动时,屏幕会变黑10秒,然后再次显示,仅显示数字10。我认为它实际上“休眠”了10秒,直到循环在显示之前结束。您应该在AsyncTask中调用meth(),并从onCreate()调用该AsyncTask。我不熟悉AsnycTask,你能详细说明一下吗?我在meth()方法中尝试了CountDownTimer,文本显示为onFinish。有一个延迟,但在初始延迟之后,只显示10。我还在do{}循环中尝试了CountDownTimer。该方法会使应用程序崩溃。
handler.postDelayed(new Runnable() {
    startCountDown();
}, 1000);