Android仿微博实现添加话题的输入框

Android仿微博实现添加话题的输入框,第1张

由于项目需求,需要实现一个类似于微博的可以添加话题的编辑框,实现发布帖子时可以添加话题,并且话题要变色 可选中 可删除等.起初为了快速实现,就在网上找了以下,有人已经实现了此功能,这里给出参考帖子的链接 Android 自定义view-仿新浪微博#话题#插入EditText

不过测试的时候发现有些许bug,并且在华为手机上删除话题不能被选中,于是就基于参考帖子的实现思路,对其中一些东西进行了修改,并适配了华为(原因是通过 KeyCode==KeyEvent.KEYCODE_DEL竟然监听不到华为个别机型的删除键)手机.

1.通过onSelectionChanged()监听光标的位置,来判断光标是否被选中在话题文字内部,如果在话题内部,则将光标定位到话题结束处.

2.添加addTextChangedListener(),监听文字变化.如果是删除文字动作,则遍历TEditText内部的list,判断是否有话题,如果有并且删除的是话题,则对话题进行选中.最后,刷新TEditText的UI展示.

如图1是添加话题的效果

图2是话题被选中的效果

源码和TEditText使用访问我

建立代码创建。

1.首先建立好两个activity,取名分别为activity_main和activity_display_message

2.在在第一个activity的布局文件(content_main.xml)中创建一个编辑框(EditText)和一个按钮(Button),并在按钮中设置触发事件sendMessage

3.在MainActivity.java下声明一个sendMessage方法

4.在我们创建的第二个Activity的布局文件(activity_display_message.xml)下创建一个文本框(TextView)并设置id

5.打开DisplayMessageActivity.java在onCreat方法中添加代码

这样就实现了一个简单的、线性布局下的编辑框向文本框传输数据的简单功能。

这个简单,你在界面用ScrollView布局,

里面用一个RelativeLayout铺满父窗口,RelativeLayout用布局,居下,这样,当获取焦点的时候,就会自动上去了,

还需要在manifest文件中,对activity设置android:windowSoftInputMode="stateHidden|adjustResize"


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

原文地址: http://outofmemory.cn/bake/11801625.html

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

发表评论

登录后才能评论

评论列表(0条)

保存