如何把键盘输入的数据添加到数据库中android

如何把键盘输入的数据添加到数据库中android,第1张

你好,解决办法如下所示:

首先,我们为布局代码新增一个" 添加数据 "的按钮。其中,要记得为线性布局设置一个orientation(方向),比如设置为vertical(垂直)。

然后,我们为按钮设置监听器,ContentValues对象提供了一个put方法来添加数据。put方法中有两个参数,第一个参数为数据库中对应的列名,第二个参数为相应的数据。添加完参数后,我们用SQLiteDatabase对象提供的insert方法把数据插入数据库。insert方法中有三个参数,第一个参数为表名;第二个参数用于在未添加数据的情况下,自动赋值为NULL,一般传入null即可;第三个参数为ContentValues对象的值。

如果我们还要传入一组数据,就要记得在传入数据之前,添加valuesclear()语句来把之前的数据清除掉。

SQL数据的一个主要原则是模式:数据库是如何组织的一个正式声明。模式被反映在你用于创建数据库的SQL语句中。你可能会发现,它有助于创建伴侣类,即约束(contract)类,这个类使用系统性的和自记录的方式来明确的指定你的模式的布局。约束(contract)类是一个定义URIs、表名和列名的常量容器。在相同包中的所有类都可以这个约束类中的常量。这样就会一处修改,全局有效。组织约束类的一个好方法是把定义放到类的根层次,以便它对整个数据库有效。

安卓手机键盘输入中文需要输入法的支持,以MIUI系统为例:

1、打开短信应用,进入短信编辑页面,调用输入法程序。

2、选择“拼音九键”或者是“拼音全键”输入,然后就可以输入中文了。

当editText获取焦点的时候,需要直接调用显示键盘命令:

editTextsetOnFocusChangeListener(new ViewOnFocusChangeListener() {

@Override

public void onFocusChange(View v, boolean hasFocus) {

if (hasFocus) {

dialoggetWindow()setSoftInputMode(WindowManagerLayoutParamsSOFT_INPUT_STATE_ALWAYS_VISIBLE);

 }

 }

});

为了引出下面遇到的问题,提一下密码框删除的思路

删除细节:已输入密码删除移动焦点 ,和无输入内容时移动焦点

密码删除思路:拦截 DELETE 事件,清除输入框并取消焦点,让前一个输入框获取焦点。

测试妹子在使用华为P10 测试到这里的时候,发现删除键没用,她以为手机坏了。因为其他手机包括华为P9都可以响应删除并前移焦点。

开发手机我用的搜狗键盘没有问题,我切换回原生键盘再测发现——我勒个皮皮虾,毛反应都没有。测试妹子发现不是手机坏的,一个眼神光波差点把我炸到五米外。

这种奇葩坑必须深度挖一挖,不然还会被他的同类绊倒

设备:华为 ALT-TL00 501

因为这里是纯数字密码,设置属性 inputType 值为 numberPassword 。

测试日志发现,发现 ACTION_DOWN 、 ACTION_DOWN 、 DELETE 都没有获取到。

为了去除意外,我又测试了不设置 inputType ,果不其然全GG。

此时我真的感觉到了蛋疼 FUCK! 这是个锤子手机,心里默默吐槽了开发这个键盘的程序员兄弟。

翻了一下老司机的博客,和国外论坛。发现还有非常普遍的bug

在输入框,没有内容时不会传递 DELETE 相关事件

而我测试发现,这个华为手机上。无论输入框有无内容都没有传递出 DELETE 事件。

1自定义开发一个键盘,这样就不用再测试其他机型或者其他厂牌的输入法。统一解决了这个问题。简单暴力,还可以附加密码输入安全策略。

但是项目已经快到尾声了,全局需要替换密码键盘。还要跟在国外的开发小伙伴沟通。

站在这两点上,项目经理否定了。让我先针对性的解决一下。

于是就有了下面的解决办法。

2着手 EditText 对键盘事件的关联使用,覆盖事件监听接口为我们自定义的,只传递需要的 ACTION_DOWN 和 DELETE 事件。

这里我就不贴源码分析了,因为用到的方法只有两个,接口名字也是一读就懂。有兴趣的小伙伴可以去翻阅源码。

参考博客: Android 获取软键盘的删除delete事件

加在你的activity里,”editTextsetInputType(EditorInfoTYPE_CLASS_PHONE)“的用法是,假如你的输入框在layout里的android:id=”@+id/inpt_num“,那么在你的activity里就要先获取下这个输入框

EditText

et=(EditText)findViewById(Ridinpt_num);

然后再是:

etsetInputType(EditorInfoTYPE_CLASS_PHONE);

以上就是关于如何把键盘输入的数据添加到数据库中android全部的内容,包括:如何把键盘输入的数据添加到数据库中android、android键盘怎么输入中文、android输入框获取焦点的同时还要d出键盘等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10069082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存