editText1的OnKey事件为什么执行两次Toast?怎么可以避免

ilove8 2013-10-02 09:48:27

当editText1空值时回车键,提示不能为空,但是为什么每次显示两次提示,跟踪了一下,该onKey事件执行两次.
主要代码如下

editText1.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
boolean bRet = false;
String s = editText1.getText().toString();
if(arg1==KeyEvent.KEYCODE_ENTER){
if(s.length() == 0){
ShowToast("不能为空");

bRet = true;
}
}
return bRet;
}
});


edit1Text文本控件下面还有个edit2Text

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<EditText
android:id="@+id/editText1"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ems="10" >

<requestFocus />
</EditText>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<EditText
android:id="@+id/editText2"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ems="10" />

</LinearLayout>


如何避免两次提示?谢谢
...全文
260 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilove8 2013-10-07
  • 打赏
  • 举报
回复
结贴! !
ilove8 2013-10-07
  • 打赏
  • 举报
回复
if(arg1==KeyEvent.KEYCODE_ENTER && arg2.getAction() == KeyEvent.ACTION_UP)
有效果,谢谢啊 你QQ号多少加你一下.
tantahe 2013-10-02
  • 打赏
  • 举报
回复
点击一次回车键,KeyEvent.ACTION_DOWN和KeyEvent.ACTION_UP都触发了View.OnKeyListener(),所以Toast显示了两次。你可以把
if(arg1==KeyEvent.KEYCODE_ENTER)
改成
if(arg1==KeyEvent.KEYCODE_ENTER && arg2.getAction() == KeyEvent.ACTION_DOWN)
或者
if(arg1==KeyEvent.KEYCODE_ENTER && arg2.getAction() == KeyEvent.ACTION_UP)
这样就只在按下ENTER键或者松开ENTER键的时候显示Toast。 你也可以根据需要改成按下和松开的时候,Toast分别显示不同的字串。
内容概要:本文档聚焦于基于Peng-Robinson状态方程的化工热力学计算研究,系统介绍了利用Matlab代码实现纯组分及多组分系统的压缩因子(z因子)和逸度系数的计算方法,并进一步拓展至泡点压力与露点压力的数值求解。资源涵盖了从状态方程推导、非线性方程求根、相平衡条件判断到迭代算法实现的完整技术路线,提供了可运行的Matlab程序代码,有助于深入理解实际工程中物性参数的计算原理与实现过程; 适合人群:具备化工热力学基础知识和一定Matlab编程能力的高校学生、科研人员及工程技术人员,尤其适合从事过程系统模拟、油气田开发、精馏设计及相关领域研究的专业人士; 使用场景及目标:① 掌握Peng-Robinson方程在真实气体物性计算中的应用;② 实现多组分混合体系的相平衡计算与泡/露点预测;③ 为Aspen Plus等商用流程模拟软件提供底层算法验证与教学参考;④ 支持科研论文复现、课程设计、毕业设计及工业过程优化中的热力学数据支撑需求; 阅读建议:建议读者结合经典化工热力学教材同步学习,重点理解立方型状态方程的根判别、迭代收敛策略与相平衡准则的数学表达,动手调试并运行所提供的Matlab代码以掌握算法细节,还可将其扩展应用于其他状态方程(如SRK、vdW)的对比分析研究。

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧