当我在三星Galaxy Watch 4上旋转我的眼罩时,我正试图捕捉它的动作,但它从来没有“运行”过。
这是我的代码:
findViewById(R.id.Badtunna).setOnGenericMotionListener(new View.OnGenericMotionListener() {
@Override
public boolean onGenericMotion(View view, MotionEvent motionEvent) {
System.out.println("GUM");
if(motionEvent.getAction() == MotionEvent.ACTION_SCROLL &&
motionEvent.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)) {
System.out.println("BUBBEL");
return true;
}
return false;
}
});我的观点是一个普通的TextView:
<TextView
android:id="@+id/Badtunna"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Badtunna" />这是我的onCreate()在MainActivity中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
// Add all the domoticz devices
domoticz_devices.put(766, "idx_766");
domoticz_devices.put(17, "idx_17");
findViewById(R.id.Skymningssensor).requestFocus();
findViewById(R.id.Skymningssensor).setOnGenericMotionListener(new View.OnGenericMotionListener() {
@Override
public boolean onGenericMotion(View view, MotionEvent motionEvent) {
System.out.println("GUM");
if(motionEvent.getAction() == MotionEvent.ACTION_SCROLL &&
motionEvent.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)) {
System.out.println("BUBBEL");
return true;
}
return false;
}
});
TextView idx_17_button = findViewById(R.id.idx_17);
idx_17_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
toggleDomoticzDevice(17, "idx_17");
} catch (IOException e) {
e.printStackTrace();
}
}
});
TextView idx_657_button = findViewById(R.id.idx_657);
idx_657_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
toggleDomoticzDevice(657, "idx_657");
} catch (IOException e) {
e.printStackTrace();
}
}
});
handler.postDelayed(new Runnable() {
@Override
public void run() {
for (Integer i : domoticz_devices.keySet()) {
getDomoticzDeviceAndSetTextview(i, domoticz_devices.get(i));
}
handler.postDelayed(this, delay);
}
}, delay);
}当焦点在“工作”时,键盘应该弹出吗?我还更新了我的TextView并添加了可聚焦的:true和focusableintouchmode:true
提前感谢!
向麦克斯问好
发布于 2022-11-11 12:28:59
医生来了
https://developer.android.com/training/wearables/user-input/rotary-input#custom-scrolling
可能的问题是焦点
记住要确保您的视图获得焦点,否则事件就不会发生。
https://developer.android.com/training/wearables/user-input/rotary-input#custom-scrolling
默认情况下,启动一个活动甚至点击一个视图都不会给它带来焦点,即使它是可聚焦的。为了提供视图焦点,视图必须使用标记或手动调用View.requestFocus().
https://stackoverflow.com/questions/74393038
复制相似问题