2011-05-19 49 views
0

我正在使用softkeyboard。SoftKeyboard問題

我的問題如下。

  1. 如何在文本(EditText)中獲取光標的當前位置。
  2. 如何獲取文本中的總長度值(EditText)。
  3. 如果EditText是多行,則在文本(EditText)中獲取當前遊標的行。

如果你想看到我的代碼,然後看到這個softkeyboard's link。我正在遵循此代碼。

回答

1

你應該在edittext中放置textwatcher事件,這是當用戶鍵入一個字符(任何由鍵盤輸入)時執行的事件。 在你的情況下,當用戶在edittext中輸入單個字符時,你得到了洞文本,然後得到這個文本的長度,它是你的光標位置和文本中值的總長度。 根據你的第三個問題你有所有的文本編輯文本使用上面的方法寫,然後你將所有的文本以ascii值轉換,然後比較每個字符與13(這是在鍵盤輸入的ASCII值),並增加行的計數器時它使用這個條件是真實的你在編輯文本中找不到任何行。我給你一個例子如何把文本觀察者放入你在這段代碼中改變的edittext中,並根據你的條件進行轉換。

ed.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) { 

       textlength = ed.getText().length(); 
       ); 

      } 
     }); 
+1

謝謝ShowHide,但我認爲你沒有看清楚我的問題。其實我正在使用軟鍵盤,所有的東西都在服務中工作。所以我怎麼能得到當前的EditText服務.. – 2011-05-19 05:18:49