,android如何写到文件? 想将应用中一些edittext获取不到文本中的文本(有中文)写到一个txt

--旗下,中国最好的系统开发学习平台!
热门推荐:
当前位置: >
解决ListView中使用EditText所遇到的一些冲突
发布时间: 11:54 | 作者:采集侠 | 来源:网络整理 | 浏览:
大家都知道在listView中使用editText,在输入过程中是有冲突的。今天稍微研究了一下这个问题,有一点点小小的心得和大家一起分享下。
& 首先建立一个最简单的demo,主界面就是一个ListView,其中list_item的布局代码如下:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&&
& & android:orientation=&vertical& android:layout_width=&match_parent&
& & android:layout_height=&match_parent&&
& & &TextView android:layout_width=&wrap_content&
& & & & android:layout_height=&wrap_content& android:text=&TextView&
& & & & android:id=&@+id/textView1& android:textSize=&20sp&&&/TextView&
& & &EditText android:layout_width=&match_parent&
& & & & android:layout_height=&wrap_content& android:id=&@+id/editText1&&
& & &/EditText&
&/LinearLayout&
很简单list_item包含一个TextView,还有一个就是EditText。
运行后在某一项EditText进行输入,点击返回键隐藏输入法键盘时会遇到一个问题即所有项的EditText内容都被清空了。
解决办法:在Manifest中Activity标签下加入android:windowSoftInputMode=&adjustPan&。
这个问题是解决了,但是还有其他的问题。
当你点击最后一项时,没有问题,此时最后一项的EditText拥有焦点。然后,点击系统返回键,再点击最后一项,此时你会发现输入法将最后一项完全挡住了(这样很影响用户体验)。
解决方法:当点击系统返回键时,让其释放焦点。
有人肯定会先这样处理:
& & public boolean onKeyDown(int keyCode, KeyEvent event) {
& & & & // TODO Auto-generated method stub
& & & & if (keyCode == KeyEvent.KEYCODE_BACK) {
& & & & & & &//释放焦点
& & & & return super.onKeyDown(keyCode, event);
但是很遗憾,当输入法键盘显示的时候,你点击系统的返回键事件被捕获了,而不会在onKeyDown里执行。
public boolean dispatchKeyEventPreIme(KeyEvent event) {
& & if (context != null) {
& & & & InputMethodManager imm = (InputMethodManager) context
& & & & & & & & .getSystemService(Context.INPUT_METHOD_SERVICE);
& & & & if (imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
& & & & & & //释放焦点
& & & & & & for (int i = 0; i & getChildCount(); i++) {
& & & & & & & & View view = getChildAt(i);
& & & & & & & & EditText editText1 = (EditText) view
& & & & & & & & & & & & .findViewById(R.id.editText1);
& & & & & & & & editText1.clearFocus();
& & & & & & }
& & return super.dispatchKeyEventPreIme(event);
自定义控件重写dispatchKeyEventPreIme方法判断软键处于活动状态,并且用户按下了返回键盘。
说到这里提一下,自定义adapter的getView方法中view不要复用
& & public View getView(int position, View convertView, ViewGroup parent) {
& & & & convertView = mLayoutInflater.inflate(R.layout.list_item, null);
& & & & return convertV
写到这里觉得这种实现方式和ScrollView+LinearLayout本质差不多
&顺便提一下怎么保存数据:
editText1.addTextChangedListener(new TextWatcher() {
& & & & & & @Override
& & & & & & public void onTextChanged(CharSequence s, int start, int before,
& & & & & & & & & & int count) {
& & & & & & }
& & & & & & @Override
& & & & & & public void beforeTextChanged(CharSequence s, int start, int count,
& & & & & & & & & & int after) {
& & & & & & }
& & & & & & @Override
& & & & & & public void afterTextChanged(Editable s) {
& & & & & & & & //保存数据
& & & & & & }
& & & & });求问,android如何写到文件? 想将应用中一些edittext中的文本(有中文)写到一个txt_百度知道
求问,android如何写到文件? 想将应用中一些edittext中的文本(有中文)写到一个txt
public static String readFile(String filePath) {
FileInputStream fis = null!= fos)
fos:String */ }/
fos,自己去优化和扩展吧,至于文件的格式就自己随便写了;
file = new File(filePath+fileName):54,很简单的,然后保存进文件.toString():保存文件 根目录 Author,就是用输出流写进缓冲字节数组;
if (hasSDCard) {
return Environment:@return * Return今天刚写了这个工具类;
} catch (FileNotFoundException e) {
e.read(mByte);
byte[] mByte = new byte[512]:14 TAG;** *
if (.printStackTrace().printStackTrace().exists())
file:String *&#47.toString();** *
* TODO; public static String getSDPath() {
boolean hasSDCard = E
} catch (IOException e) {
e.getBytes()):读取文件 Author.getExternalStorageDirectory();** *
* TODO.equals(
Environment:保存文件
*&#47。public class FileStoreTools {&#47:@param * filePath TAG: 上午08;
return Environment:40 TAG.flush().mkdirs().getDownloadCacheDirectory().close(); public static void saveFile(String textString:48;
} catch (IOException e) {
e.Liu Create Time, String fileP
fis = new FileInputStream(new File(filePath)).Liu Create T
} }&#47.printStackTrace():Andy!file.MEDIA_MOUNTED);
} catch (IOException e) {
} finally {
fos!= fis)
fis.write(textString.printStackTrace().close():Andy.toString().getExternalStorageState();
} catch (FileNotFoundException e) {
return new String(mByte).printStackTrace();
} catch (IOException e) {
e.printStackTrace();
File file = new File(filePath),贴给你:@return Return,String fileName) {
FileOutputStream fos =
fos = new FileOutputStream(file);
} finally {
if (null : 上午08
其他类似问题
为您推荐:
edittext的相关知识
其他3条回答
这个嘛,推荐你用安卓WPS办公软件就可以编辑了
……在安卓编程啊……晕
下一个re管理器
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android中怎么将一个edittext里的文本传到另一个edittext中_百度知道
Android中怎么将一个edittext里的文本传到另一个edittext中
新手,解释详细些谢谢!
就是通过一个button将一个框框内的文字添加到另个框框内
提问者采纳
在事件中获取第一个edittext中的字符串edittext控件有监听事件,这样边输入边显示,然后用setText方法显示到第二个edittext中
但是这样我输入第二句话时,之前的第一句话就被覆盖了怎么办?我想保留第二个框框中的第一句话
你所谓的框框是文本框还是输入框请搞清楚,例如:从第一个输入框中获取的字符串放在str1变量中,(定义全局变量 String str2 = “”;str2 = str2 + str1)。str2的内容显示在第二个输入框中。按照上面的方式第二次输入时的字符串就会累加到str2中,这样就可以了。
我私信你啦~
提问者评价
谢谢啦~搞定啦~
其他类似问题
为您推荐:
edittext的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 edittext设置文本 的文章

 

随机推荐