安卓开发中如何将输入框中带有换行的数据保存到TXT文件中,保留换行,电脑打开TXT时要有换行
我遇到的问题是:我要先取得android中的EditText里的数据,数据有换行,如“123”回车“456”,然后我用File创建一个TXT文件,然后把EditText里...
我遇到的问题是:我要先取得android中的EditText里的数据,数据有换行,如“123”回车“456”,然后我用File创建一个TXT文件,然后把EditText里的数据“123”回车“456”用IO写到新建的TXT文件中,但将该TXT文件用电脑打开时只有一行“123456”,连在一起的,中间什么也没有,更没有换行。
请问这是问什么?如何解决?
我知道这很可能是编码不同造成的,但不确定,跪求达人指点。主要是解决这个问题,在手机上是什么格式用电脑打开就是什么格式,同时电脑创建的用手机打开也要一样。求高手帮帮忙! 展开
请问这是问什么?如何解决?
我知道这很可能是编码不同造成的,但不确定,跪求达人指点。主要是解决这个问题,在手机上是什么格式用电脑打开就是什么格式,同时电脑创建的用手机打开也要一样。求高手帮帮忙! 展开
3个回答
展开全部
我刚才特意试了一下在自己的代码里加了点调试信息
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的子类,来提供这样的方法。
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的子类,来提供这样的方法。
展开全部
试试看Edit的输入设置成
android:inputType="textMultiLine"
android:inputType="textMultiLine"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文本框自动过虑了换行符,你找找,有没有设置什么属性让文本框不要过虑……c#经验
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询