,我刚开始学习java for android,我已经将Textfield的TextVisibility设置为GONE,我需要将TextVisibilty更改为VISIBLE,7秒后点击Button,我搜索了互联网,找不到任何有用的东西或者我无法理解。所以,请帮助我。
答案 0 :(得分:0)
尝试
final TextView yourText = (TextView) findViewById(R.id.yourTextId);
yourText.setVisibility(View.GONE);
yourText.postDelayed(new Runnable() {
@Override
public void run() {
yourText.setVisibility(View.VISIBLE);
}
}, 7 * 1000);
按钮单击监听器中的。 例如,在您的活动的OnCreate()中:
final TextView yourText = (TextView) findViewById(R.id.yourTextId);
Button yourButton = (Button) findViewById(R.id.yourButtonId);
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
yourText.setVisibility(View.GONE);
yourText.postDelayed(new Runnable() {
@Override
public void run() {
yourText.setVisibility(View.VISIBLE);
}
}, 7 * 1000);
}
});
答案 1 :(得分:0)
在Android上,当你想要在一段时间后执行某些事情并在其他线程中执行时,通常会使用处理程序,如下所示:
final TextView yourText = (TextView) findViewById(R.id.yourTextId);
Handler handler = new Handler();
handler.postDelayed(new Runnable()) {
@Override
public void run() {
yourText.setVisibility(View.VISIBLE);
}
}, 7000);
如果需要,可以在Activity中实现Runnable类,这样就不必封装任何东西:
public class MyActivity implements Runnable
然后将 this 传递给de postDelayed方法第一个参数
handler.postDelayed(this, 7000);
并在您的活动中实施run方法:
public void onCreate() {
super.onCreate();
setContentView(R.id.your_layout);
/* some code */
}
@Override
public void run() {
yourText.setVisibility(View.VISIBLE);
}
这将在你在postDelayed的第二个参数中设置的一段时间之后执行run方法中的代码,并在另一个线程中执行,这样你就可以继续在MainActivity中创建内容,比如点击按钮或其他东西。
使用示例代码编辑注释:
Handler handler1 = new Handler();
Handler handler2 = new Handler();
handler1.postDelayed(new Runnable() {
tvt1.setVisibility(View.VISIBLE);
}, 7000);
handler2.postDelayed(new Runnable() {
tvt2.setVisibility(View.VISIBLE);
}, 12000);