Java 为什么login\u register在满足变量后不运行?

Java 为什么login\u register在满足变量后不运行?,java,android,Java,Android,使用runnable显示进度条已完成加载后,我声明int对1可见,然后使用if语句表示if visible=1打开新活动,但它不起作用 我不知道该怎么办 public class MainActivity extends AppCompatActivity { private ProgressBar myProgressBar1;//defines progress bar private TextView myLoadingText1;// defines my loadin

使用runnable显示进度条已完成加载后,我声明int对1可见,然后使用if语句表示if visible=1打开新活动,但它不起作用

我不知道该怎么办

public class MainActivity extends AppCompatActivity {

    private ProgressBar myProgressBar1;//defines progress bar
    private TextView myLoadingText1;// defines my loading text
    private int myProgressStatus = 0;// defines status of the progress bar
    private Handler myHandler1 = new Handler();// adds a handler for the progress bar
    int visible;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome_screen);

        myProgressBar1 = (ProgressBar) findViewById(R.id.progressBar);//Finds id of component
        myLoadingText1 = (TextView) findViewById(R.id.loadingComplete);//Finds id of component


        new Thread(new Runnable() {
            @Override
            public void run() {
                while (myProgressStatus < 100){ //while progress bar value is under 100 add 1
                    myProgressStatus++;
                    android.os.SystemClock.sleep(50);
                    myHandler1.post(new Runnable() {
                        @Override
                        public void run() {
                            myProgressBar1.setProgress(myProgressStatus);
                        }
                    });
                }
                myHandler1.post(new Runnable() { //call handler
                    @Override
                    public void run() {
                        myLoadingText1.setVisibility(View.VISIBLE); // sets loading complete to visible after time elapsed
                        visible = 1;
                    }
                });
            }
        }).start();
        if(visible ==1 ){
            startActivity(new Intent(this, login_register.class));
        }
    }
}

预期的结果是在显示消息Loading complete(加载完成)并将要显示的下一个活动的int visible设置为1之后,但是,它将保留在第一个活动上。

尝试将您的意图放在run方法中

myHandler1.post(new Runnable() { //call handler
            @Override
            public void run() {
                myLoadingText1.setVisibility(View.VISIBLE); // sets loading complete to visible after time elapsed
                visible = 1;
                startActivity(new Intent(this, login_register.class));
            }
        });

在线程完成其执行之前,您的if语句已首先执行

是否要在应用程序中创建登录会话?是的,在下一个活动中我将这样做,这是一个欢迎屏幕,其中有一条欢迎消息和进度条,当加载完成时,当此隐藏消息显示我想移动到下一个活动,但不明白为什么它不起作用时,另一条消息将变为可见。您好,我以前试过,但我得到了无法解决构造函数的意图错误尝试这个。startActivitynew IntentMainActivity.this,login\u register.class;很高兴我能帮忙。安威可以投票表决我的答案,让其他人也知道@布拉德利