安卓开发中如何将输入框中带有换行的数据保存到TXT文件中,保留换行,电脑打开TXT时要有换行

我遇到的问题是:我要先取得android中的EditText里的数据,数据有换行,如“123”回车“456”,然后我用File创建一个TXT文件,然后把EditText里... 我遇到的问题是:我要先取得android中的EditText里的数据,数据有换行,如“123”回车“456”,然后我用File创建一个TXT文件,然后把EditText里的数据“123”回车“456”用IO写到新建的TXT文件中,但将该TXT文件用电脑打开时只有一行“123456”,连在一起的,中间什么也没有,更没有换行。
请问这是问什么?如何解决?
我知道这很可能是编码不同造成的,但不确定,跪求达人指点。主要是解决这个问题,在手机上是什么格式用电脑打开就是什么格式,同时电脑创建的用手机打开也要一样。求高手帮帮忙!
展开
 我来答
dut_wish
2013-01-21 · TA获得超过1634个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:506万
展开全部
我刚才特意试了一下在自己的代码里加了点调试信息

String user = _loginUser.getText().toString();
int firstCR = user.indexOf("\n");

_loginUser是我UI中的EditText,在其中我输入了3行文字,每行文字我都是手动按回车键换行,这样取出来的文本是带有换行符的。

但是你如果是一直输入满后让EditText自动换行的话,这样取出来是不带换行符的。这样其实是很有道理的,自动换行本来就不会给你插入换行符,它只是由于UI的边界,看起来像换行了一样。

我觉得有种简便办法可以解决。
int lineCount = _loginUser.getLineCount();
这样可以取得EditTex里的行数
把它和里面找到的'\n'比较一下数量,就知道你的这段文本大概是个什么情况。

1 如果行数和\n数量对得上,说明每行都是手工回车换行的这种最简单,直接保存。

2 如果\n为0说明都是ui自动换行的,这样也简单,把总字数和行数一计算就知道有多少行,每行多少字,然后自己存盘时插入换行符。当然这样不太准确,算是折中。

3 对不上,说明有自动换行,也有手动换行,这种其实很麻烦,可以参考2的办法解决了。

总之没有太好的办法,毕竟EditText没法按行数取得文本

你可以自己覆写一个EditText的子类,来提供这样的方法。
xiahanvy
2013-01-21 · TA获得超过342个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:351万
展开全部
试试看Edit的输入设置成
android:inputType="textMultiLine"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逢喜客门门
2013-01-20 · 超过34用户采纳过TA的回答
知道答主
回答量:156
采纳率:100%
帮助的人:51.2万
展开全部
文本框自动过虑了换行符,你找找,有没有设置什么属性让文本框不要过虑……c#经验
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式