Android1.5 EditText注册OnKeyListener的问题,棘手!!!!高手进

接触Android的不久,今天碰到一个很棘手的问题,现将代码贴上,恳请高手赐教!!!!

Java代码:

package android.question;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;

public class TestActivity extends Activity implements OnKeyListener {
private EditText text1;//长文本框
private EditText text2;//短文本框,只作比较用

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text1 = (EditText) this.findViewById(R.id.widget44);
text1.setOnKeyListener(this);//长文本框注册了OnKeyListener
}

@Override
public boolean onKey(View v, int keyCode, KeyEvent e) {
if (v.isFocusable() && (v instanceof EditText)
&& keyCode == KeyEvent.KEYCODE_DEL) {
EditText temp = (EditText) v;
String text = temp.getText().toString();
if (text.length() > 0) {
String afterText = text.substring(0, text.length() - 1);
temp.setText(afterText);//为何点击一次软键盘上的Del健,会删掉长文本框后面的的两个字符呢?应该是一个才对呀?
}
}
return true;
}
}

layout的main.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/widget0"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText android:id="@+id/widget44" android:layout_width="220px"
android:layout_height="38px" android:textSize="18sp" android:gravity="left"
android:layout_x="4px" android:layout_y="32px" android:imeOptions="actionGo"
android:ellipsize="end" android:drawablePadding="4px">
</EditText>
<EditText android:id="@+id/widget45" android:layout_width="90px"
android:layout_height="38px" android:imeOptions="actionSearch"
android:textSize="18sp" android:typeface="serif" android:textStyle="bold"
android:gravity="center" android:layout_x="226px" android:layout_y="32px">
</EditText>
</AbsoluteLayout>

长文本框text1跟短文本框text2相比,除了xml中的基本定义不同外,再就是text1注册了OnKeyListener,text2没有做任何处理,text2能直接响应软键盘的Del键来删除字符,而text1也通过OnKey方法中截取字符串来响应软键盘的Del键进行删除操作,但在Android1.5的SDK中,每点击一下Del键,会删除两个字符,貌似OnKey方法被执行了两次,如果text1在OnKey方法中不进行字符串的截取,在软键盘中点击Del键没有任何反应,为什么会这样啊?高手赐教!!!
先奉上40分,解决后另有追加
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值