gpt4 book ai didi

java - onKeyListener 未在 Android 中触发事件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:09 24 4
gpt4 key购买 nike

我有一个 Activity 和一个 Fragment。此 fragment 有一个按钮,我希望在按下硬件键盘上的“输入”按钮时发生一些事情(我正在使用 adb keyevent 对其进行测试)。

我在 stackoverflow 上阅读了很多解决方案,但没有一个有效。

这是我的 fragment 代码:

btnPhoto = (Button) rootView.findViewById(R.id.taskBtnPhoto);
photoView = (ImageView) rootView.findViewById(R.id.taskPhotoView);

btnPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
takePhoto();
}
});

btnPhoto.setFocusable(true);
btnPhoto.setFocusableInTouchMode(true);
btnPhoto.requestFocus();

btnPhoto.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {

if (KeyEvent.KEYCODE_VOLUME_UP == keyCode) {
doFoo();
return true;
}
return false;
}
});

此代码位于我的 fragment 的 onCreateView 部分。使用调试,当我从 ADB 启动 KeyEvent 或使用手机的硬件键(音量键)时,事件永远不会被触发。

最佳答案

public static class MyFragment extends Fragment {

@Override
public void onResume() {
super.onResume();
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//YOUR CODE
return false;
}
});
}
}

关于java - onKeyListener 未在 Android 中触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31382318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com