java - 如何在 Fragment 中实现 onKeyDown
问题描述
我将所有活动更改为片段。我陷入了 onkeydown 部分。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (!sector.getText().toString().equals("Sector") && (media.isChecked() || completa.isChecked())) {
siguiente.setEnabled(true);
} else {
siguiente.setEnabled(false);
}
return super.onKeyDown(keyCode, event);
}
解决方案
您可以通过在片段类中定义方法来做到这一点。例如:
public void onMyKeyDown(int key, KeyEvent event){
//define your statement like
if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5
&& key == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Do you really want to Exit?")
.setIcon(R.drawable.logo)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}})
.setNegativeButton(android.R.string.no, null).show();
}
}
每当在 Activity 类中引发按键事件时调用 onMyKeyDown 方法。例子:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//call fragment method onMyKeyDown(keyCode, event)
return super.onKeyDown(keyCode, event);
}
推荐阅读
- mysql - Mysql:加载数据插入0而不是null
- javascript - Angular/Typescript:当独立元素发生变化时,typescript 中的数组会发生变化
- css - Reactstrap 文档
- publish - 在 Solace 主题上发布 JMS 消息
- react-native - React Native 中的自定义标签栏
- apache - 如何使用 Apache Lucenes Indexer 搜索来搜索日语单词?
- css - 如何创建如图所示的响应式网格设计?
- jira - 一个项目 JIRA Ticket 中的更改如何反映另一个项目中的链接工单
- sql - 在红移中将日期转换为 DD-MMM-YY
- user-interface - Octave GUI 开发