2017-05-30 35 views
0

由以下代碼我試圖顯示EditText行數插入新行後,此代碼工作罰款僅適用於第一個新行,然後,對於每個類型字符EditText我插入新行登錄LogCatAndroid獲取EditText行數後每插入新行

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    } 
    @Override 
    public void onTextChanged(CharSequence text, int start, int before, int count) { 
     if (-1 != text.toString().indexOf("\n")) { 
      Log.e("new line ", "enter new line" + ""); 
     } 
    } 
    @Override 
    public void afterTextChanged(Editable s) { 
    } 
}); 
+0

你會得到每個字符的新線。 'indexOf(「\ n」)'總是返回一些值,因爲如果第一個新行發生。那麼在那個文本中會出現一個新行 –

回答

0

試試這個。

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    } 
    @Override 
    public void onTextChanged(CharSequence text, int start, int before, int count) { 
     String insertedString = text.toString(); 
     if (text.length() > 0 && insertedString.substring(insertedString.length() - 1).equals("\n")) { 
      Log.e("new line ", "enter new line " + (channelMessageBox.getLineCount() - 1)); 
     } 
    } 
    @Override 
    public void afterTextChanged(Editable s) { 
    } 
}); 
+0

無法正常工作 –

+0

Ofcourse它不起作用。他根本沒有讀你的問題。使用這段代碼,你會計算第一行,然後停止。只要數\ n字符,你就可以走了,而不是尋找索引。 –

+0

@Amy請將'/ n'改爲'\ n',現在我該如何獲得行數? –

1

你要算換行符:

int counter = 0; 

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    } 
    @Override 
    public void onTextChanged(CharSequence text, int start, int before, int count) { 
     if(before==0) { 
      counter = 0; 
      for (int i = 0; i < text.toString().length(); i++) { 
       if (text.toString().charAt(i) == '\n') { 
        counter++; 
       } 
      } 
     } 
     Log.e("total new line ", "counter: " + counter); 
    } 
    @Override 
    public void afterTextChanged(Editable s) { 
    } 
}); 
+1

它不是很好的解決方案,因爲對於每個輸入字符你必須檢查 –

+0

好吧。我正試圖給你更好的解決方案。 :) –

+0

我嘗試了幾個解決方案,但終於得到了這個解決方案。我只是編輯我更優化的答案。 @ TUX世界 –