【问题标题】:Android: TextView visibility changesAndroid:TextView 可见性更改
【发布时间】:2015-03-14 16:25:21
【问题描述】:

我已经开始使用 android 编程,我正在尝试做:

  1. 让用户输入他们的登录凭据。
  2. 如果用户登录凭据有效,让他们登录。
  3. 如果登录凭据无效,则向他们发送一条错误消息,指出输入的用户名或密码无效。

对于最后一部分,问题是我有一个默认隐藏可见性的TextView。我想让它可见几秒钟然后让它消失。

This post 和 this post 有所帮助,但他们基本上试图做相反的事情。

我的代码如下:

 submitButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
       // Check the validity of the user name.
       if (valid) {
          // Let the user log in.
       } else {
          // Make TextView visible for a few seconds.
       }
    }
 });

我该怎么做?

【问题讨论】:

  • 你知道线程吗?或者只是你为什么不使用吐司
  • @Sarz 吐司?你能详细说明一下吗?
  • 正如 Sarz 所说,如果您不需要用户确认,Toast 就可以了。如果您需要用户确认,您可以使用警报对话框。
  • ok in else set textview visibility visible 。并在用户名类型中使 textview 消失
  • @PrakharMohanSrivastava 现在,如果你的问题得到解决,你可以接受任何你喜欢的答案来结束这个问题。

标签: android user-interface textview visibility


【解决方案1】:

您可以使用处理程序来做到这一点。

 submitButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
    //check the validity of the user name
    if(valid)
    {
        //let the user login
    }
    else
    {
        //how to make the textview visible for a few seconds
new Handler().postDelayed(new Runnable()
            {
                @Override
                public void run()
                {
                        mTextView.setVisibility(View.VISIBLE);

                    }
            }, 1000/* 1sec delay */);
    }
});

【讨论】:

    【解决方案2】:

    你可以在 timertask 的帮助下实现这一点,因为你的 textview 是不可见的,首先让它可见,然后在 timertask 的帮助下让它再次不可见

    submitButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
    //check the validity of the user name
    if(valid)
    {
        //let the user login
    }
    else
    {
     txt.setVisibility(View.VISIBLE);
     Timer t = new Timer(false);
     t.schedule(new TimerTask() {
     @Override
      public void run() {
       runOnUiThread(new Runnable() {
            public void run() {
                txt.setVisibility(View.INVISIBLE);
            }
        });
    }
    }, 5000);
    }
    });
    

    但我建议您是否希望用户确认在 alertdialog 中显示错误或 toast 显示错误会很好

    【讨论】:

      【解决方案3】:

      试试这个

      mButton.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  mTextView.setVisibility(View.VISIBLE);
                  v.postDelayed(new Runnable() {
                      @Override
                      public void run() {
                          mTextView.setVisibility(View.GONE);
                      }
                  }, 2000);
              }
          });
      

      【讨论】:

        【解决方案4】:

        在您的情况下,您首先需要显示 TextView 然后将其设为 INVISIBLE

        使用 textView.postDelayed 方法为:

           if(valid){  //let the user login }
            else
            {
                 // make TextView visible here
                  textView.setVisibility(View.VISIBLE);   
                  //use postDelayed to hide TextView 
                  textView.postDelayed(new Runnable() {
                       public void run() {
                       textView.setVisibility(View.INVISIBLE);
                      }
                 }, 3000);
                //how to make the textview visible for a few seconds
            }
        

        【讨论】:

          【解决方案5】:

          你可以用吐司。

          Context context = getApplicationContext();
          CharSequence text = "Hello toast!";
          int duration = Toast.LENGTH_SHORT;
          
          Toast toast = Toast.makeText(context, text, duration);
          toast.show();
          

          Toasts in android

          【讨论】:

            【解决方案6】:

            要显示任何信息或错误消息,您可以使用小弹出消息一段时间。按照 toast 的代码和图像。

            //display in short period of time
            Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-03-12
              • 1970-01-01
              • 2014-04-23
              • 2017-08-04
              • 2012-04-01
              • 2011-07-10
              相关资源
              最近更新 更多