我目前正在开发一个Android项目,它允许用户使用不同的颜色编写文本并存储起来供以后使用(即编辑或阅读)。
他们以任何方式在Android中存储多色文本文件吗?
注意:我搜索了解决方案,但找不到任何有用的东西。
答案 0 :(得分:0)
评论者提出了HTML,这可能是一个不错的选择。我们欢迎您Html.fromHtml()
尝试使用简单的HTML格式文件的内容填充您的EditText
,欢迎您尝试Html.toHtml()
从EditText
的内容生成HTML 1}}。但是,从历史上看,这些方法并不是为了很好地实现“往返行程”,这意味着EditText
的内容可能会从其起点变为其所包含的内容。在执行Html.toHtml()
(生成并保存HTML)和Html.fromHtml()
之后(使用之前保存的HTML填充EditText
)。如果它们不起作用,您可以分叉Html
类并尝试根据需要进行修改,或编写自己的代码以获取Spanned
对象并将其转换为HTML或从HTML转换为HTML跨越并从中生成HTML标记。
答案 1 :(得分:0)
我猜测用户必须执行一些操作来切换颜色? 如果是这样 - 您可以使用该触发器在切换时存储文本位置/长度并保存文本位置列表 - 颜色。
答案 2 :(得分:0)
问题已解决:
将EditText中的多色文本存储到txt文件的代码:
protected void onDestroy() {
super.onDestroy();
boolean writing_allowed= ExternalStorageWriting.isWritingPossible();
if(writing_allowed)
{
String store= Html.toHtml(et.getEditableText());
File myExternalFile = new File(getExternalFilesDir(filepath), filename3);
try {
FileOutputStream fos = new FileOutputStream(myExternalFile);
fos.write(store.getBytes());
fos.close();
} catch (Exception e) {
Toast.makeText(Notes.this, "Something went wrong...", Toast.LENGTH_SHORT).show();
}
}
}
读取该txt文件并在EditText中显示的代码:
private void setNotes()
{
String myData="";
try {
File myExternalFile = new File(getExternalFilesDir(filepath), filename3);
FileInputStream fis = new FileInputStream(myExternalFile);
DataInputStream in = new DataInputStream(fis);
BufferedReader br =
new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
myData = myData + strLine;
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
Spanned htmlText = Html.fromHtml(myData);
et.setText(htmlText);
}