【问题标题】:Transparent window for sending message in android在android中发送消息的透明窗口
【发布时间】:2013-03-20 05:38:51
【问题描述】:

我有一个包含 web 视图和一组按钮的活动。我正在使用计时器来请求对这些按钮的关注。但是对于单击它们,我希望应该有一个透明窗口,除了布局之外,单击它时它会通知活动窗口单击已注册并调用 getCurrentFocus().performClick () 并且我希望这种情况一次又一次地发生,这意味着所有点击都必须通过透明窗口。所以在我的主要活动中,我这样做是为了调用透明活动

Intent trans = new Intent("web.browser.gk.TransparentActivity");
        startActivityForResult(trans,REQUEST_TRANSPARENT);

在 onActivity 结果中我已经这样做了

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK){ 
            switch(requestCode) {

            case REQUEST_TRANSPARENT:
                Toast.makeText(this, "TRANSPARENT Acitivity clicked ",Toast.LENGTH_SHORT).show();
                if(flag)
                {
                    numpad.getCurrentFocus().performClick();
                }
                else
                {
                getCurrentFocus().performClick();
                }
                        break;

            case REQUEST_CODE:

            if (data.hasExtra("websearch")) {
                Toast.makeText(this, data.getExtras().getString("websearch"),Toast.LENGTH_SHORT).show();
                String i =  data.getExtras().getString("websearch");
                webview.loadUrl(i);

            }
            break;
        }
        }

        Intent trans = new Intent("web.browser.gk.TransparentActivity");
        startActivityForResult(trans,REQUEST_TRANSPARENT);


    }

现在的问题是,在我的代码中,我正在调用 webview.loadUrl(i) 但它不加载当前 url。它仅在单击透明窗口后加载该 url。任何建议如何处理。有没有其他方法可以实现这个透明窗口功能

【问题讨论】:

    标签: android android-intent message transparent onclicklistener


    【解决方案1】:

    一次只能运行一个活动,因此如果您设置一个透明活动,那么它后面的活动将被暂停。您可以使用 View 或 Fragment,但实际上如果您想要做的只是检测点击,那么处理此问题的最佳方法可能是简单地覆盖 dispatchTouchEvent。

    @Override public boolean dispatchTouchEvent(MotionEvent me)
    {
        if(me.getActionMasked() == MotionEvent.ACTION_DOWN) // user touched the screen
            doSomething();
        // pass the event on to the view that's supposed to get it
        return super.dispatchTouchEvent(me);
    }
    

    【讨论】:

    • 请 user1853479 扩展您的答案。一些代码可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2013-02-21
    相关资源
    最近更新 更多