Android EditText编辑名称并保存

请问以下图怎么编辑名称:
1、要求点击编辑或名称弹出软键盘。
2、点击软键盘上的“完成”完成编辑保存。
3、其它软键盘隐藏均表示未完成编辑,恢复成原来名称。

图片说明

说明:第2点在布局中设置android:imeOptions="actionDone"不起作用。
第1点中点名称不能使用fousenable = false,不然和第3点隐藏方法产生死循环,使第3点不实现,总之要同时满足上述3点才算达到目标。

Android EditText编辑名称并保存

说实话,看到这个需求,有想打死需求的心(指的第3个需求)正常的做法是软键盘隐藏就隐藏,但是焦点还在输入框,编辑了一半,可以继续编辑啊,没必要恢复原来的名字啊(参考联系人的姓名编辑),如果能改回正常需求最好,如果只能这样,那看下面我的建议:
第1点,没啥可说的,输入框获取焦点,它的本性;编辑设置点击事件,使得输入框获取焦点
第2点,android:imeOptions="actionDone"只是将软键盘的Enter键文字改为了完成,你还需要设置监听onEditorActionListener,
if (actionCode == EditorInfo.IME_ACTION_DONE){保存,使得该edittext失去焦点,再隐藏软键盘,注意return true,这样系统就认为你处理过了不再处理了}
第3点,只能是监听软键盘的显示隐藏,(注意第2里先保存,失去焦点,再隐藏的),监听到隐藏时,判断当前这个焦点是否在此输入框,如果不是,那就把名字恢复吧。
思路大体这个思路,至于监听软键盘的显示隐藏,网上有很多,不过还是觉得你们这个逻辑不太好,希望能帮到你

别想复杂了,点编辑时把EditText的editable设置成是,使之能编辑同时让它获取焦点(requestfocus),系统自然就弹出键盘
点击完成设置editable为否,使之不能编辑同是让它释放焦点,系统自然就隐藏键盘

第三个要求也很简单,在编辑时把内容保存,在点其它时设置editable为否后,把保存的内容再放进去

第一点在点击编辑按钮的时候动态的让输入框获取焦点并弹出软键盘
第二点第三点需要在输入框的监听事件(setOnEditorActionListener)里面判断(actionId == EditorInfo.IME_ACTION_SEARCH)
为true就保存否则恢复原来的状态
至于有的手机是完成有的是回车这种情况应该是产品的问题,如果非要都有完成的话就只能自定义一个键盘了

首先看需求:
如果仅仅是修改名称,直接在这个界面,如果修改很多,则跳转到另外一个界面。这里说点击了只修改名称。
点击了编辑之后(这里可以点击之后变成“完成”)才开始可以输入,首先让 nameEditText 不能获取焦点,不能点击,单纯的就是文字显示。然后点击了"编辑”之后弹出键盘,nameEditText 获取焦点,光标显示在最后面,这里一定要设置在最后面,否则默认是在第0个位置,由于页面字体很小用户很难操作将光标点击到最后面进行删除。nameEditText要设置一下最大长度. 然后键盘的Enter键也设置一下监听,点击Enter或者“完成”时进行数据修改操作,此时要弹出“转圈圈”之内的啊,然后修改成功了“完成”变成“编辑”,nameEditText从新让它失去焦点,不能点击。如果请求失败则提示,继续弹出软键盘进行修改。。。或者弹出选择框询问是否要继续进行修改。