2013-03-20 61 views
0

我有一個有webview和一組按鈕的活動。我正在使用一個計時器來請求這些按鈕的焦點。但是對於點擊它們,我希望應該有一個透明窗口,除了點擊它之後的佈局,通知活動窗口點擊被註冊並且它調用getCurrentFocus()。performClick (),我希望這種情況再次發生,意味着所有的點擊都必須通過透明窗口。所以在我的主要活動我做這個調用透明的活動在android中發送消息的透明窗口

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(我),但它不加載當前的網址。它只在點擊透明窗口後加載該網址。任何建議如何處理這個。是否有任何其他方式實現此透明窗口功能

回答

0

一次只能運行一個活動,因此如果您建立一個透明活動,那麼它後面的活動將被暫停。你可以使用視圖或片段,但實際上如果你所要做的只是檢測點擊,那麼處理這個問題的最好方法就是簡單地重寫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); 
} 
+0

Please user1853479擴展你的答案。一些代碼可能有幫助。 – user1492793 2013-03-20 05:47:14