按钮根本不起作用-WearOS Android Studio

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

摘要

[尝试获取简单的按钮以在WearOS应用程序上工作。在Kotlin和Java中进行了尝试。两者都不起作用。曾经有一段时间在kotlin上工作,但取消了该项目。现在,我无法获得任何单击或按下事件的功能。

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

edit:在模拟器上的任何位置单击时,都会引发此错误:Cancelling event due to no window focus: 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 websocket wear-os
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.