0

我有一个活动,它有一个 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。任何建议如何处理。有没有其他方法可以实现这个透明窗口功能

4

1 回答 1

0

一次只能运行一个活动,因此如果您设置一个透明活动,那么它后面的活动将被暂停。您可以使用 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);
}
于 2013-03-20T05:42:37.950 回答