2013-02-05 33 views
1

測試設備:GSM的Galaxy Nexus 4.2SPAN_EXCLUSIVE_EXCLUSIVE跨度不能有一個零長度誤差每當EDITTEXT變空

在我的應用程序創建的對話(與兩個內置鍵盤和swiftkey 3測試),以提示用戶進行輸入。該對話框顯示,用戶應該填一個字一個EditText在創建時,以及當用戶將擦除的EditText我在logcat中收到以下錯誤消息的一切:

SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 

谷歌搜索以及如在計算器上搜索這裏告訴我,可以用的東西來避免錯誤,如

inputBox.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

其中輸入框是EditText上有問題。然而,我想保持自動完成功能,因爲用戶應該填寫最有可能自動完成的單詞。這裏所使用的代碼創建對話框:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
final EditText inputBox = new EditText(this); 
inputBox.setHint("New keyword"); 
builder.setTitle(R.string.add_keyword_dialogue_header) 
     .setView(inputBox) 
     .setPositiveButton("Add", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id { 
          mListAdapter.addItem(inputBox.getText() 
            .toString()); 
         } 
        }) 
      .setNegativeButton("Cancel", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, 
           int which) { 
         } 
        }); 
    final AlertDialog dialog = builder.create(); 
    dialog.getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
    dialog.show(); 
    inputBox.requestFocus(); 

我的問題是,我怎麼能防止錯誤存在的同時保留了自動完成功能?

回答

0

我從來沒有看到具體的錯誤之前,但我的猜測是,它的這條線,導致它:

dialog.getWindow().setSoftInputMode(
     WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 

這應該打開,即使不集中編輯框的軟鍵盤。所以輸入連接沒有正確設置,使鍵盤的功能有限。首先設定焦點可能會有所幫助。因此,如果不使用always-it,可能會使用LayoutParams.SOFT_INPUT_STATE_VISIBLE,由於沒有綁定到編輯器,可能會阻止鍵盤輸入錯誤。

+0

我試過了你的建議,錯誤信息仍然產生。即使將整行註釋掉logcat仍然顯示相同的錯誤。 – ntlv

+0

它只是默認的鍵盤發生,還是其他鍵盤也這樣做?這聽起來像是一個默認的鍵盤錯誤。在這種情況下,答案可能與日誌消息一起存在。 –

+0

它與默認鍵盤和Swiftkey 3一起發生。還有一些Google搜索引導了我: http://support.swiftkey.net/forums/116693-2-swiftkey-bugs-/suggestions/2994580-span- exclusive-exclusive-span-can-have-a-zero- 我無法找到任何類似的缺省鍵盤報告。 – ntlv

1

就在這個屬性添加到您的EditText和你的問題一定會得到解決

android:inputType="textNoSuggestions" 

上面的屬性添加到您的每個編輯文本的應用程序中使用,或者乾脆你在哪裏得到的錯誤在編輯純文本。

+2

Android文檔似乎暗示這會關閉自動完成功能。我的問題是如何解決錯誤,同時保留自動完成功能。 – ntlv

相關問題