gpt4 book ai didi

Android View 在同一个 OnClick 方法中设置为 Visible 和 Gone,View 从不显示 Visible

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:19 25 4
gpt4 key购买 nike

嗨 stackoverflow 社区,

我在 droid 4.0.3 设备上使用 Android API 14。

在 Activity 中,我设置了一个 Button 以在执行操作时在页面上显示一个 TextView。执行操作后,我希望 TextView 再次消失。

button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// make textview visible
textView1.setVisibility(View.VISIBLE);

// perform action
System.out.println("perform action");

// make textview disappear
textView1.setVisibility(View.GONE);
}
});

如果我删除使 TextView 消失的部分,TextView 会按预期出现在窗口顶部,但我希望 TextView 出现 1-2 秒然后消失。

起初我想知道我是否需要做更多的工作而不仅仅是执行一个小 Action ,所以我尝试添加一个等待并打印出文本,但这些都不起作用。等待总是调用异常,结束 Activity ,当我打印出数字 1-1000 时, View 仍然永久消失。

有没有更好的方法让 TextView 在 OnClick Action 中出现和消失?

感谢您的帮助!

最佳答案

这些命令是背靠背执行的。所以从技术上讲,它可能是可见的,但只有一两毫秒。您需要区分何时使 View 可见以及何时隐藏它...


您说您希望 TextView 在某种意义上“闪烁”,所以让我们使用作为每个 View 的一部分的 Handler 来调用 Runnable。这个 Runnable 将在片刻之后简单地隐藏 TextView:

1) 设置类变量:

Runnable hide = new Runnable() {
@Override
public void run() {
textView1.setVisibility(View.GONE);
}
};

2) 稍后调用可运行对象:

button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// make textview visible for 1 second (1000 milliseconds)
textView1.setVisibility(View.VISIBLE);
textView1.postDelayed(hide, 1000);
}
});

(Handler 和 Runnable 不会阻塞 UI 线程。)

关于Android View 在同一个 OnClick 方法中设置为 Visible 和 Gone,View 从不显示 Visible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com