Java 如何在android studio中设置显示imageview的处理程序

Java 如何在android studio中设置显示imageview的处理程序,java,android,android-studio,android-handler,Java,Android,Android Studio,Android Handler,单击按钮后,我想在延迟后显示一些视图 但它不起作用 我找不到问题 或者这个代码不起作用 我将图像设置为不可见,并希望在单击按钮26秒后显示它 有人能帮我吗 这是一个完整的活动代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().getDecorView().setSystemUiVisibility(View

单击按钮后,我想在延迟后显示一些视图 但它不起作用 我找不到问题 或者这个代码不起作用

我将图像设置为不可见,并希望在单击按钮26秒后显示它 有人能帮我吗

这是一个完整的活动代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

    setContentView(R.layout.activity_enter);


    ImageView yourImage = findViewById(R.id.allRightRegistered);

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            yourImage.setVisibility(View.VISIBLE);
        }
    }, 26000);

    VideoView videoview = findViewById(R.id.videoView);
    Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.intromovie);
    videoview.setVideoURI(uri);
    videoview.start();
}





@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

}
这是我的xml代码

<VideoView
    android:id="@+id/videoView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/Enter_Btn"
    android:layout_width="300dp"
    android:layout_height="90dp"
    android:text="Im Ready To Enter\nCoffee Melody"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.497"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.499" />

<ImageView
    android:id="@+id/allRightRegistered"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="24dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    android:visibility="invisible"
    app:srcCompat="@drawable/all_right_registered" />

顺便提一下,我使用了运动布局 它有3个约束条件

这是我的设计 在第一个约束中,我将按钮设置为不可见 在第二种情况下,它将是可见的 点击按钮后,它转到第三个按钮,视频将被播放,按钮将不可见
我希望在单击按钮一段时间后显示一个图像和两个按钮要运行长时间延迟的作业,请使用
计时器而不是
处理程序

public class MainActivity extends AppCompatActivity {

    private Button button;
    private ImageView imageView1;
    private Button button1;
    private Button button2;

    private TimerTask timerTask;
    private Timer timer;

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

        button = findViewById(R.id.button);
        imageView1 = findViewById(R.id.imageView1);
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);

        imageView1.setVisibility(View.GONE);
        button1.setVisibility(View.GONE);
        button2.setVisibility(View.GONE);

        timerTask = new TimerTask() {
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        imageView1.setVisibility(View.VISIBLE);
                        button1.setVisibility(View.VISIBLE);
                        button2.setVisibility(View.VISIBLE);
                    }
                });
            }
        };

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (timer != null) {
                    timer.cancel();
                }
                timer = new Timer();
                timer.schedule(timerTask, 26000);
            }
        });
    }

    @Override
    protected void onStop() {
        super.onStop();
        timer.cancel();
    }
}

谢谢,不用设置按钮就可以了。但是当我设置onclicklistener时,它不起作用。不客气:)我不明白你想用按钮做什么。你能解释一下吗?我想在点击用户按钮后,计时器开始,26秒后,一个图像视图和另外两个按钮将为用户显示,如动画…我已经改变了答案,以适应您所描述的情况。请检查一下,希望问题得到解决。不……那也不起作用……你是伊朗人吗?因为我喜欢问一些我有经验的人的问题