2011-09-11 23 views
1

我想創建我的第一個Android應用程序,它將幫助我進行一些概述。在android文本視圖中檢測新行

很簡單,我試圖寫一些檢測,當一行以連字符開頭時,下一次有一個新行連字符將放在該新行的前面。

我正在尋找任何指針或指示我應該在哪裏尋找,因爲這是我的第一個應用程序。

或者從另一種意義上說,檢測正在輸入的文本並根據它改變EditText的最好方法是什麼。

+0

你有沒有完成[教程](http://developer.android.com/resources/browser。 HTML?標籤=教程)? – jacknad

回答

1

您可以使用可附加到事件的android文本觀察器類。

EditText mPasswordLength = (EditText)findViewById(R.id.password_length); 
mPasswordLength.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s){ 
    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){ 
    } 
    public void onTextChanged(CharSequence s, int start, int before, int count){ 
    } 
}); 

您可以用來編輯文本的方法是onTextChanged。有關這些事件何時發生以及爲何發生的更詳細的說明在此post.中進行了解釋。以最高票數閱讀答案。

0

要用於EditTextOnKeyListener,則在聽者的onKey(View v, int keyCode, KeyEvent event)方法,看它是否是eventKeyEvent.ACTION_DOWNkeyCodeKeyEvent.KEYCODE_ENTER,如果是的話則追加一個「 - 」到的EditText結束。

1

由於OnKeyListener不適用於軟鍵盤,因此我建議使用TextWatcher。

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    if(-1 != charSequence.toString().indexOf("\n")){ 
     // Do your stuff 
    } 
} 

當你想更換一些其他字符串這個序列,試試這個:

public void afterTextChanged(Editable editable) { 

    int i = editable.toString().indexOf("\n"); 
    if (i != -1) { 
     editable.replace(i, i+1, ""); 
    } 
}