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 호출 전후)로 이동하려고했습니다.
나는 내가 onObjectClick 방법을 실종됐다 실현 OK 핸들러까지 클릭 이벤트를 전달하는 : @Override 공공 무효 onObjectClick (최종 ControlObjectClickEvent 이벤트) { 경우 (! event.getLayoutReference() = -1) { mLayout.onClick (event.getLayoutReference()); } } 이 방법을 추가하면 모두 작동합니다. – user2979644
다른 사람이 찾을 수 있도록 대답으로 만들 수 있습니다. – Giszmo