2013-11-01 51 views
0

我在我的應用程序中有多個TextView,我已經在它們上實現了OnFocusChangeListener和OnClickListener,但我注意到OnFocusChangeListener阻止了OnClickListener ..請告訴我是否有任何解決方法可以避免這種情況因爲我必須實施兩者。TextView上的OnFocusChangeListener阻止其OnClickListener

channelMenu.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
       @Override 
       public void onFocusChange(View view, boolean b) { 

        //Toast.makeText(getActivity(),"changing Focus",2000).show(); 
        if (b) { 
         channelMenu.setShadowLayer(GLOW, 0f, 0f, Color.WHITE); 
         mGroupCallback.OnGroupSelected(channelMenu.getText().toString()); 

        } else if (!b) { 
         channelMenu.setShadowLayer(DIM, 0f, 0f, Color.WHITE); 
        } 
       } 
      }); 

channelMenu.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (!channelMenuExpanded) { 

        if(!ischannelSubMenuCreated){ 

         createChannelSubMenu(); 
         channelSubmenusContainer.setVisibility(View.VISIBLE); 
         channelMenuExpanded = true; 
        }else if(ischannelSubMenuCreated){ 
         channelSubmenusContainer.setVisibility(View.VISIBLE); 
         channelMenuExpanded = true; 
        } 
       } else { 
        channelSubmenusContainer.setVisibility(View.GONE); 
        channelMenuExpanded = false; 
       } 


       mGroupCallback.OnGroupSelected(channelMenu.getText().toString()); 
      } 
     }); 

回答

0

而不是點擊偵聽器,嘗試使用觸摸監聽器。

tv.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction()==MotionEvent.ACTION_UP){ 
      //Call your click method. 
      return true. 
     } 
     return false; 
    } 
}); 

修改上述代碼以滿足您的需求。

+0

它的工作,但不是我想要的方式! – r4jiv007

+0

你能告訴我你的需要嗎? –

相關問題