Android 使按钮不可见5秒钟

Android 使按钮不可见5秒钟,android,android-animation,android-button,Android,Android Animation,Android Button,目标: 启动应用程序时,按钮应在5秒后可见。 按照顺序,启动应用程序->隐藏按钮->等待5秒钟->显示按钮 问题: 代码不起作用,我缺少什么部分? 信息: *我是android新手,这就是我尝试的 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav

目标:
启动应用程序时,按钮应在5秒后可见。

按照顺序,启动应用程序->隐藏按钮->等待5秒钟->显示按钮

问题:
代码不起作用,我缺少什么部分?

信息:
*我是android新手,这就是我尝试的

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button button2 = (Button) findViewById(R.id.btn_test);
        button2.setVisibility(GONE);
        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                    //dummy delay for 5 second
                    Thread.sleep(5000);
                }
                catch (InterruptedException e){
                    e.printStackTrace();
                }
                runOnUiThread(new Runnable() { //resetting the visibility of the button
                    @Override
                    public void run() {

                        //manipulating UI components from outside of the UI Thread require a call to runOnUiThread
                        button2.setVisibility(VISIBLE);
                    }
                });
            }
        }).start();
    }
}
任何帮助都将不胜感激,谢谢

xml androidmanifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jfdimarzio.labb3">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


活动\u主xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jfdimarzio.labb3.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:visibility="visible"
        tools:layout_editor_absoluteX="16dp"
        tools:layout_editor_absoluteY="16dp" />

</android.support.constraint.ConstraintLayout>

您似乎缺少
setContentView
。。先把它修好

setContentView(R.layout.main_activity);
不要使用
线程
睡眠
。改为使用
处理程序post DELATED

Handler handler = new Handler();
button2.setVisibility(View.GONE);
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        button2.setVisibility(View.VISIBLE);
    }
}
// run runnable after 5 seconds
handler.postDelayed(runnable, 5000);

简单到不用动作动画就可以制作动画。只要设置持续时间,动画结束后,监听器就会显示它

按钮vew.setVisibility(View.GONE);
buttonView.animate()
.setDuration(5000)
.setListener(新的AnimatorListenerAdapter(){
@凌驾
AnimationEnd上的公共无效(Animator动画){
super.onAnimationEnd(动画);
按钮View.setVisibility(View.visible);
}
});试试这个

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main.xml);
        Button button2 = (Button) findViewById(R.id.btn_test);
        button2.setVisibility(GONE);
        button2.postDelayed(new Runnable() {
            public void run() {
                button2.setVisibility(View.VISIBLE);
            }
        }, 5000);
    }
}

看起来,你只是从我的答案中读到的,伙计,至少不要假装你没有t@What“sUP,使用您的主要活动的布局,而不是确定的主要活动。这里是您为按钮编写xml代码的地方,您检索到一条错误消息“E/AndroidRuntime:FATAL EXCEPTION:main Process:com.jfdimarzio.labb3,PID:3065 java.lang.RuntimeException:无法启动活动组件信息{com.jfdimarzio.labb3/com.jfdimarzio.labb3.MainActivity}”:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setVisibility(int)'@What'sUP检查下面的答案。感谢大家的帮助!E/AndroidRuntime:致命异常:主进程:com.jfdimarzio.labb3,PID:3064 java.lang.RuntimeException:无法启动活动组件信息{com.jfdimarzio.labb3/com.jfdimarzio.labb3.main活动}:java.lang.NullPointerException:尝试调用虚拟方法“void android.widget.Button.setVisibility”(int)“”在空对象引用上View buttonView=FindView wById(R.id.button);它应该是View not button,并且View.visible->View.visible我收到另一条错误消息“-----------崩溃开始E/AndroidRuntime:致命异常:主进程:com.jfdimarzio.labb3,PID:2627 java.lang.RuntimeException:无法启动活动组件信息{com.jfdimarzio.labb3/com.jfdimarzio.labb3.MainActivity}”:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setVisibility(int)'@What'sUP检查下面的我的答案。谢谢你们的帮助!检查我的答案。你们缺少setcontentview,这就是为什么你们得到的按钮为空。谢谢你们的帮助!