sony smartwatch 2点击事件未被提升

时间:2014-01-09 14:52:49

标签: android sony sony-smartwatch

我猜这只是我做一些有点愚蠢的事情。我的布局文件中有一堆TextViews,我用它来创建一个数字键盘。他们是0-9这样:

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

pad_button样式包括:

<item name="android:clickable">true</item>

然后在我的ControlExtension类'构造函数中,我调用一个名为wireUpButtons()的方法,其代码如下:

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调用之前和之后),没有任何更改。

1 个答案:

答案 0 :(得分:1)

好的,我意识到我缺少onObjectClick方法将click事件传递给处理程序:

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

添加此方法后,一切正常