首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android SDK中执行点击按钮

在Android SDK中执行点击按钮
EN

Stack Overflow用户
提问于 2013-03-05 21:29:08
回答 4查看 20.7K关注 0票数 9

一旦布局被创建,我想要一个按钮被自动点击,为此我使用了button.performClick()

问题是它不起作用。看起来我不能在onCreate, onStart, onResume方法中做到这一点。按钮及其事件是在什么时候创建的,这样我就可以单击它了?

代码语言:javascript
运行
复制
@Override
protected void onResume() {
    super.onResume();
    mybutton.performClick();
}

不起作用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-05 21:34:27

在一个类似的案例中,这对我很有效:

代码语言:javascript
运行
复制
mybutton.post(new Runnable(){
            @Override
            public void run() {
                 mybutton.performClick();
            }
});

这样,只有当按钮已经加载到布局中时,runnable才会运行。

票数 34
EN

Stack Overflow用户

发布于 2013-03-05 21:33:46

您需要使用ViewTreeObserver

代码语言:javascript
运行
复制
    ViewTreeObserver vto = mybutton.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            vto.removeOnGlobalLayoutListener(this);
            mybutton.performClick();
        }
    });
票数 3
EN

Stack Overflow用户

发布于 2013-03-05 21:43:43

我闻到的似乎是你忘记将onClicklistner添加到你的视图中,我测试了你的方法,它工作得很好,我做了如下操作:

全局定义按钮Button btn;

onCreate()

代码语言:javascript
运行
复制
btn=(Button)findViewById(R.id.button);
            btn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    dialog();
                }
            });

onResume()

代码语言:javascript
运行
复制
@Override
    protected void onResume() {

        btn.performClick();
        super.onResume();
    }

它成功地显示了一个对话框!

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

https://stackoverflow.com/questions/15225036

复制
相关文章

相似问题

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