2017-06-02 53 views
0

我目前正在研究一個android項目,它允許用戶使用不同的顏色寫文本並將它們存儲起來供以後使用(即編輯或閱讀)。在android中使用文件存儲多色文本

他們的任何方式來存儲在Android多文本文件的文件?

注意:我爲解決方案進行了搜索,但找不到任何有用的東西。

+1

你可以使用HTML''標籤。 TextView使用'HTML.fromHTML()'方法正常工作 –

+0

謝謝你的迴應。但我使用inputtype =「textMultiLine」的EditText。你能告訴我任何方式將此文本轉換爲帶有標籤的HTML文本嗎? –

回答

0

評論者提出了HTML,這可能是一個不錯的選擇。歡迎您嘗試Html.fromHtml()以使用簡單的HTML格式文件的內容填充您的EditText,歡迎您嘗試Html.toHtml()從您的EditText的內容中生成HTML。然而,從歷史上看,這些方法並沒有寫得很好地執行「往返行程」,這意味着EditText的內容可能會在做完Html.toHtml()之後從其出發點變成其所包含的內容(以生成並保存HTML)和Html.fromHtml()(用以前保存的HTML填充EditText)。如果它們不起作用,您可以分叉Html類並嘗試根據需要對其進行修改,或者編寫自己的代碼以獲取Spanned對象,並通過檢查跨度並從中生成HTML標記將其轉換爲HTML。

+0

是的,我試圖這樣做。感謝您的幫助。 –

0

我猜測用戶必須執行一些操作來切換顏色? 如果是這樣 - 您可以使用該觸發器來存儲切換時的文本位置/長度並保存文本位置列表 - 顏色。

+0

我也在考慮這個解決方案,但它會非常複雜,因爲用戶也可以使用其他顏色編輯以前編寫的文本。 –

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); 
} 
相關問題