TextView具备长按编辑功能,返回键可保存当前编辑内容
来源:互联网 发布:淘宝潮牌 编辑:程序博客网 时间:2024/05/29 11:31
这个需求看起来很简单,但是可能会有一些细节上的处理,所以拿出来跟大家一起分享下,其实标题上说的TextView不是真正意义上的TextView,我是采用EditText实现,EditText继承自TextView,基本上TextView能使用的方法EditText都能使用,但是EditText有更为方便的方法,大家用TextView完全也可以实现该需求,只是我在写项目是用到的是EditText怕大家会有所误解,在此提一下,下面看代码。
首先先是简单配置下xml文件
<EditText android:focusable="false" android:focusableInTouchMode="false" android:background="@null" android:text="" android:id="@+id/class_57" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_marginLeft="5dip" android:layout_marginRight="5dip" android:layout_marginTop="10dip" android:layout_toRightOf="@+id/rikcb_3jie" android:singleLine="true" android:tag="rikcb_km" android:textColor="@color/BLACK_HALF" android:textSize="22sp" />
在java代码中做处理,让EditText实现onLongClickListener()
class_57 = (EditText) findViewById(R.id.class_57); class_57.setOnLongClickListener(this);
通过SharedPreference设置该View区域的显示文字信息
sp = getSharedPreferences("class_plan", Context.MODE_PRIVATE); class_57.setText(sp.getString("class_57","默认显示的文字信息"));
/** * EditText的长按事件监听 * @param v * @return */ @Override public boolean onLongClick(View v) { switch (v.getId()){ case R.id.**: ..... break; case R.id.**: ...... break; case R.id.class_57 : setItemText(class_57,"class_57"); //封装功能方法 break; } return true; }
/** * 设置edittext的点击监听事件,用户长按可修改edittext中的内容, * 点击返回按键,存入sharedpreference中 * * @param edittext 要修改的edittext * @param keyValue 存入sharedpreference中的键值 */ private void setItemText(final EditText edittext, final String keyValue) { edittext.setFocusableInTouchMode(true); edittext.setFocusable(true); Log.i("xieodng", "被长按"); edittext.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (edittext.isFocused()) { if (keyCode == KeyEvent.KEYCODE_BACK) { edittext.setFocusableInTouchMode(false); edittext.clearFocus(); edittext.setTextColor(getResources().getColor(R.color.accent_material_dark)); SharedPreferences.Editor editor = sp.edit(); editor.putString(keyValue, edittext.getText().toString()); editor.commit(); return true; } } return false; } }); edittext.setText(sp.getString(keyValue, "")); }
0 0
- TextView具备长按编辑功能,返回键可保存当前编辑内容
- 在线编辑word文档 可保存到服务器
- 在线编辑word文档 可保存到服务器
- listview中的长按item编辑功能的解析
- 编辑内容后,按home键返回待机,之前输入的内容未保存
- 编辑返回键
- 编辑内容
- django 内容编辑功能的实现
- abap调用编辑框实现输入长文本、大块文本,并获得编辑框中的内容
- GridView 长按编辑,点击删除
- UICollectionView的item长按移动编辑
- textview可编辑
- TextView 图文编辑
- textview可编辑
- 获取wpf datagrid当前被编辑单元格的内容
- 长按TextView实现复制功能
- asp页面中ewebeditor编辑添加一键编辑功能
- 活用Word“编辑受限制区域内容”功能
- 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器
- Oracle trunc()函数的用法
- 阿里java规范整理
- 素数求和
- SpringBoot17 之Interceptor
- TextView具备长按编辑功能,返回键可保存当前编辑内容
- TinyPNG---一个压缩PNG的神站
- 线段树 单点增减/替换,区间查询
- redis之lpush、rpush、lset、lrem
- 数组、链表、堆栈和队列
- 排列平方数
- 处理AppCompatActivity中openOptionsMenu方法无效的问题
- 使用IntelliJ IDEA 配置Maven(入门)
- Java 数据结构 --> Hashtable 接口