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,这就是为什么你们得到的按钮为空。谢谢你们的帮助!