首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓6秒后发起Button OnClick动作

安卓6秒后发起Button OnClick动作
EN

Stack Overflow用户
提问于 2016-07-18 04:48:12
回答 2查看 186关注 0票数 0

我在我的活动中有5个按钮在一个线性布局中。我已经编写了一段代码,当我单击其中一个按钮时,会显示一条敬酒消息。它在6秒的单击操作后显示toast消息。我想不出问题是什么..以下是我在android studio中编写的代码

代码语言:javascript
复制
public class HomePage extends AppCompatActivity implements View.OnClickListener {

     private Button loginButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_page);

        makeNotificationBarTransparent();

        loginButton = (Button)findViewById(R.id.login_btn);

        loginButton.setOnClickListener(this);





        Intent i = getIntent();
        Toast.makeText(getApplicationContext(),i.getStringExtra("UserName"),Toast.LENGTH_LONG).show();
    }

    private void makeNotificationBarTransparent() {
        //Making notification bar transparent
        if(Build.VERSION.SDK_INT >= 21){
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){

            case R.id.login_btn:
                Toast.makeText(getApplicationContext(),"CLicked",Toast.LENGTH_LONG).show();
                break;
        }
    }
}

谁能告诉我问题出在哪里?

EN

回答 2

Stack Overflow用户

发布于 2016-07-18 04:59:30

这可能是因为您显示了设置为显示的另一条toast消息,因为两条toast消息不能同时显示。

我指的是这条吐司信息:

代码语言:javascript
复制
        Toast.makeText(getApplicationContext(),i.getStringExtra("UserName"),Toast.LENGTH_LONG).show();
票数 2
EN

Stack Overflow用户

发布于 2016-07-18 05:17:51

你的意思是按下按钮6秒后就会显示Toast消息?尝试使用以下命令:

代码语言:javascript
复制
Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               // show toast here...
           }
    }, 6000); // 6 seconds

或者,您可以使用CountDownTimer:

代码语言:javascript
复制
new CountDownTimer(6000, 1000) {

    public void onTick(long millisUntilFinished) {
       // do every 1 second
    }

    public void onFinish() {
        // show your toast after 6 seconds.
    }

}.start();

这是你需要的吗?如果没有,请告诉我更多关于您的问题:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38425807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档