按钮未对Wear OS应用程序中的任何事件作出反应

问题描述 投票:1回答:1

摘要

[尝试获取简单的按钮以在Wear OS应用程序中工作。在Kotlin和Java中进行了尝试。两者都不起作用。曾经使用Kotlin使其工作,但取消了该项目。现在,我无法获得任何点击或新闻事件。

该按钮本身甚至没有显示任何视觉上的被按下的验证。这只是静态的。

edit:在模拟器上的任何位置单击时,都会引发此错误:

由于没有窗口焦点而取消事件:MotionEvent

我尝试过的

除了我的代码,我还进行了一些故障排除尝试。我已经更改了AVD手表,更改了API级别,重新启动了Android Studio,重新启动了整个计算机。

这里是我的编码尝试:

我尝试设置监听器:

Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        System.out.println("TEST");
    }
});

我曾尝试用XML定义函数并在主要活动中定义函数(请参见onClick):

主要活动:

public class MainActivity extends WearableActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Enables Always-on
        setAmbientEnabled();
    }

    public void onClick(View view){
        System.out.println("BUTTON CLICKED!");
    }
}

XML:

<Button
    android:id="@+id/button"
    android:layout_width="110dp"
    android:layout_height="wrap_content"
    android:text="Button"
    android:clickable="true"
    android:onClick="onClick"/>

这些方法都无法使按钮提供任何已被按下的视觉指示。函数中没有logcat。只是一个静态的手表屏幕。

java android kotlin wear-os android-button
1个回答
1
投票

检查这些日志-由于没有窗口焦点而取消事件:MotionEvent {action = ACTION_CANCEL,actionButton = 0,id [0] = 0,x [0] = 152.99072,y [0] = 111.987305,toolType [0] = TOOL_TYPE_FINGER ,buttonState = 0,metaState = 0,标志= 0x0,edgeFlags = 0x0,pointerCount = 1,historySize = 0,eventTime = 151077888,downTime = 151077759,deviceId = 0,source = 0x1002}或类似的事件(删除事件)。

[如果看到它们,请单击模拟器上的后退按钮,转到显示您的应用程序和其他应用程序(如设置等)的屏幕(我不知道该屏幕叫什么),然后从此处启动您的应用程序将工作...一次。在这种情况下,唯一的解决方法是使用OnKeyDown。或者,如果不是这种情况,请告诉我,因为这将是给OS添加另一个神秘的错误。

[添加动画gif以显示会发生什么情况(虽然没有捕获到光标,但是起初您看不到按钮有任何反应(我正在单击它),并且将其放回后视觉变化)enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.