2014-01-09 2 views
0

나는 이것이 내가 멍청한 뭔가를하고있는 것 같아요. 숫자 패드를 만들 때 사용하는 레이아웃 파일에 TextViews가로드되어 있습니다. 그들은 다음과 같이 0-9 :소니 스마트 워치 2 클릭 이벤트가 발생하지 않습니다.

<TextView android:id="@+id/pad_number_7" android:text="@string/pad_number_text_7" style="@style/pad_button" /> 

pad_button 스타일은 다음과 같습니다

같은 코드 내 ControlExtension 클래스 '나는 방법이라고 wireUpButtons를 호출하고 생성자()에서 다음
<item name="android:clickable">true</item> 

:

mLayout = parseLayout(((LayoutInflater)mContext.getSystemService("layout_inflater")).inflate(R.layout.pad_layout, null)); 
if (mLayout != null) 
{ 
    Log.d("DK", "Adding event for button 7"); 
    ControlView controlview = mLayout.findViewById(R.id.pad_number_7); 
    controlview.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(){ 
      Log.d("DK", "Button 7 clicked"); 
      sendResult("7"); 
     } 
    }); 
} 

그리고 내 onResume 레이아웃을 보여줍니다

@Override 
public void onResume() { 
    showLayout(R.layout.pad_layout, null); 
} 

하지만 로그 항목이 생성되지 않으며 sendResult 호출이 발생하지 않습니다. 아무도 내 클릭 이벤트가 발생하지 않는 이유를 알고 있습니까? 로그 첫 번째 로그 항목이 표시되면서 이벤트를 연결하는 호출이 발생하고 변경없이 wireUpButtons()에 대한 호출을 onResume 함수 (showLayout 호출 전후)로 이동하려고했습니다.

+0

나는 내가 onObjectClick 방법을 실종됐다 실현 OK 핸들러까지 클릭 이벤트를 전달하는 : @Override 공공 무효 onObjectClick (최종 ControlObjectClickEvent 이벤트) { 경우 (! event.getLayoutReference() = -1) { mLayout.onClick (event.getLayoutReference()); } } 이 방법을 추가하면 모두 작동합니다. – user2979644

+1

다른 사람이 찾을 수 있도록 대답으로 만들 수 있습니다. – Giszmo

답변

1

확인을 나는 핸들러까지 클릭 이벤트를 전달하는 onObjectClick 방법을 실종됐다 실현 :

@Override 
public void onObjectClick(final ControlObjectClickEvent event) { 
    if (event.getLayoutReference() != -1) { 
     mLayout.onClick(event.getLayoutReference()); 
    } 
} 

이 방법이 모든 작품을 추가 한 후 지금