Скрыть TextView через некоторое время в Android

Я хочу скрыть TextView через некоторое время, скажем, 3 секунды. Я погуглил и нашел код, и я попробовал код, как показано ниже, но он не работает.

Пожалуйста, скажи мне, что в этом плохого ?

tvRQPoint.setText("+0");
tvRQPoint.postDelayed(new Runnable() {
    public void run() {
        tvRQPoint.setText("+0");
    }
}, 3000);

еще одна вещь, как снять тайм-аут ? Как я использую это на click событие ListView, если пользователь нажимает на один вариант, а затем нажимает на второй вариант, то, как 3 секунды закончились (после нажатия на первый вариант), он не показывает второй вариант для 3 считанные секунды.

7 ответов


попробовать View INVISIBLE или GONE как:

tvRQPoint.postDelayed(new Runnable() {
public void run() {
    tvRQPoint.setVisibility(View.INVISIBLE);
}
}, 3000);

Set View visibility С вид.setVisibility (View.Невидимый / вид.Видимый|вид.Ушел);


Как спрятать свой текст с анимацией?

  int delayMillis = 3000;
  Handler handler = new Handler();
  final View v = tvRQPoint; // your view
  handler.postDelayed(new Runnable() { 
    @Override
    public void run() {
       TranslateAnimation animate = new TranslateAnimation(0,-view.getWidth(),0,0);
       animate.setDuration(500);
       animate.setFillAfter(true);
       v.startAnimation(animate);
       v.setVisibility(View.GONE);

    }, delayMillis);

то, что вы пытаетесь сделать, это ок, но через три секунды вы хотите скрыть textview чтобы использовать setVisibility

tvRQPoint.setText("+0");
    tvRQPoint.postDelayed(new Runnable() {
        public void run() {
            tvRQPoint.setVisibility(View.INVISIBLE);
        }
    }, 3000);

попробуйте это-

Handler handler;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
tvRQPoint.setText("+0");
handler = new Handler();
handler.postDelayed(csRunnable, 3000); 
}

Runnable csRunnable =new Runnable() 
{      
@Override
public void run() 
{
tvRQPoint.setVisibility(View.INVISIBLE);    
}
};

попробуйте это...

public class MainActivity extends Activity   {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView tv=(TextView)findViewById(R.id.tv);
    tv.setText("+0");
    tv.postDelayed(new Runnable() {
        public void run() {
            tv.setVisibility(View.INVISIBLE);
        }
    }, 3000);
}
 }

вы устанавливаете текст в методе run (). вы можете Скрыть текст двумя способами

View.INVISIBLE - дайте пространство для textview и скрыть его содержимое

View.GONE - удалить пространство для textview и скрыть его содержимое

так называем

tvRQPoint.setVisibility(View.INVISIBLE);

                   (or)

tvRQPoint.setVisibility(View.GONE);

надеюсь, что это работает:

tvRQPoint.setText("+0");
Timer timer = new Timer();
    timer.schedule(new TimerTask() {

       public void run() {

          tvRQPoint.setVisibility(View.GONE);

       }

    },3000);