使用android中的文件存储多色文本

时间:2017-06-02 19:29:17

标签: android

我目前正在开发一个Android项目,它允许用户使用不同的颜色编写文本并存储起来供以后使用(即编辑或阅读)。

他们以任何方式在Android中存储多色文本文件吗?

注意:我搜索了解决方案,但找不到任何有用的东西。

3 个答案:

答案 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);
}