Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在对话框的自定义视图中处理后退键_Java_Android - Fatal编程技术网

Java 在对话框的自定义视图中处理后退键

Java 在对话框的自定义视图中处理后退键,java,android,Java,Android,好的,我在对话框中有一个自定义视图,但它的onKeyDown从未被调用。我也尝试了onKeyPreIme,但没有成功,将对话框的setCancelable设置为true也没有帮助 编辑: //Removed all unnecessary code public class CustomView extends LinearLayout { @Override public boolean onKeyDown (int keyCode, KeyEvent event)

好的,我在对话框中有一个自定义视图,但它的onKeyDown从未被调用。我也尝试了onKeyPreIme,但没有成功,将对话框的setCancelable设置为true也没有帮助

编辑:

//Removed all unnecessary code

public class CustomView extends LinearLayout
{    

    @Override
    public boolean onKeyDown (int keyCode, KeyEvent event)
    {
            if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
            {           
                   //do stuff here
                    return true;

            }    
            return super.onKeyDown(keyCode, event);         
    }
}
public class CustomDialog
{
    Dialog dialog;
    public class CustomDialog(Context context)
    {
         dialog = new Dialog(context);
         dialog.setContentView(R.layout.test);// the test.xml has CustomView

    }

}

onKeyDown
逻辑移动到
onkeydener
实现中,并将其注册到视图的构造函数中。

onKeyDown
逻辑移动到
onkeydener
实现中,并将其注册到视图的构造函数中。

为什么不简单使用:

public void onBackPressed() {
       //desired functionality here 
       return;
    }

你为什么不直接使用:

public void onBackPressed() {
       //desired functionality here 
       return;
    }

您想要的功能是什么?请发一些密码。不清楚你的代码从你的文字中做了什么。你想要的功能是什么?请发一些密码。从您的文字中不清楚您的代码做了什么。如果我没有错,它在活动中工作,而不是在视图中。除此之外,我使用的是Android 1.6,它没有这个事件。否则,按照另一个答案中提到的那样,为你的
onKeyDown
使用
onKeyListener
。这是一个库项目,当然它将用于活动。您所说的是一个技巧,每次有人使用库时都会执行。如果我没有错,它在活动中工作,而不是在视图中。除此之外,我使用的是Android 1.6,它没有这个事件。否则,按照另一个答案中提到的那样,为你的
onKeyDown
使用
onKeyListener
。这是一个库项目,当然它将用于活动。你所说的是一个技巧,每次有人使用这个库时都会这样做。好的,必须使用Dialog的KeyListener,它会被调用。好的,必须使用Dialog的KeyListener,它会被调用。