Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 使用EventKey在EditText上设置文本_Java_Android_Keyevent_Keycode - Fatal编程技术网

Java 使用EventKey在EditText上设置文本

Java 使用EventKey在EditText上设置文本,java,android,keyevent,keycode,Java,Android,Keyevent,Keycode,我正在尝试开发一个带有EditText(只允许int)和KeyEvent的小部件。问题是当按下“0”时,它会检测到KeyEvent,但不会在我的EditText上写入“0”。它应该按我按的顺序添加数字 et1.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (KeyEvent.ACTION

我正在尝试开发一个带有EditText(只允许int)和KeyEvent的小部件。问题是当按下“0”时,它会检测到KeyEvent,但不会在我的EditText上写入“0”。它应该按我按的顺序添加数字

et1.setOnKeyListener(new OnKeyListener() {
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (KeyEvent.ACTION_UP != event.getAction()) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_0:
                    //Do something...
                    break;
                default: 
                    return false;
            }
        }
        return true;
    } 
});
我试过做那样的事,但效率不高

et1.setText(et1.getText().toString + "0");

你知道什么解决办法吗?

让我试着让自己弄清楚,政治公众人物:

1) 如果您试图实现的是一个只允许整数(数字)输入的
EditText
,那么您可以添加一个属性,这就是它。这种行为不需要自定义控件

 android:inputType="number" 
2)
EditText
中没有任何输入的原因很简单,因为您通过在重写的
onKey
方法中返回
true
来阻止输入

上面说,
onKey
应该返回:

如果侦听器已使用事件,则为True,否则为false

这意味着,如果您返回
true
,由您负责,Android不会在您的
EditText
中输入任何内容。由于您没有亲自执行(至少在您提供的代码中),因此不会填充EditText

因此,我建议您完全删除处理程序,并像以前一样在
xml
中添加
inputType
属性


更新

如果您需要根据另一个(EditText2)中的输入更新一个
EditText
(我们称之为EditText1),我建议使用
TextWatcher
跟踪第一个中的输入,并使用处理后的值设置
text
EditText2


检查示例代码。

让我试着弄清楚Pep:

1) 如果您试图实现的是一个只允许整数(数字)输入的
EditText
,那么您可以添加一个属性,这就是它。这种行为不需要自定义控件

 android:inputType="number" 
2)
EditText
中没有任何输入的原因很简单,因为您通过在重写的
onKey
方法中返回
true
来阻止输入

上面说,
onKey
应该返回:

如果侦听器已使用事件,则为True,否则为false

这意味着,如果您返回
true
,由您负责,Android不会在您的
EditText
中输入任何内容。由于您没有亲自执行(至少在您提供的代码中),因此不会填充EditText

因此,我建议您完全删除处理程序,并像以前一样在
xml
中添加
inputType
属性


更新

如果您需要根据另一个(EditText2)中的输入更新一个
EditText
(我们称之为EditText1),我建议使用
TextWatcher
跟踪第一个中的输入,并使用处理后的值设置
text
EditText2


检查示例代码。

以防万一,你正在重新发明轮子:
android:inputType=“number”
请参见。我在activity.xml上使用过它,但我的问题是,当我按键时,它不会出现在我的EditText上,但会生成一个KeyEvent。我可以同时做这两件事吗?以防你重新发明轮子:
android:inputType=“number”
see。我在activity.xml上使用过它,但我的问题是当我按下键时,它不会出现在我的EditText上,但会生成一个KeyEvent。我可以同时做这两件事吗?非常感谢@Zortkun的关注。我已经在
xml
中使用
inputType
。我这样问是因为我想做一个有两个
EditText
的小部件。当我在一个
EditText
中输入数字时,另一个用算术转换填充,因此,我想做一个事件并填充。嘿。谢谢你的回答,但我想你有不同的问题。我将为您更新并建议一些方法。非常感谢@Zortkun的关注。我已经在
xml
中使用
inputType
。我这样问是因为我想做一个有两个
EditText
的小部件。当我在一个
EditText
中输入数字时,另一个用算术转换填充,因此,我想做一个事件并填充。嘿。谢谢你的回答,但我想你有不同的问题。我将为您更新并建议一些方法。