2017-01-31 6 views
0

AutoCompleteTextviewのユーザー入力の最初と最後のテキストを取得できましたが、 AutocompleteTextView textChangedメソッドでビルダーメソッドを設定すると、アプリケーションがフリーズします。 私は何か努力をいただきありがとうございます。アプリケーションがオートコンプリートでフリーズするtextChanged

@Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

      if(s.length()>0) { 
       String selectedText = s.toString(); 
       int end = selectedText.length()+start; 
       SpannableStringBuilder builder = new SpannableStringBuilder(selectedText); 
       builder.setSpan(android.graphics.Typeface.BOLD, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
       Log.i("builderText", " "+builder); 
       autoCompleteTextView.setText(builder); 

      } 

     } 
+0

スタックトレースを送信します。 – Amila

+0

これはあなたの文字列で 'start'と' end'eのどちらも一致していないことを意味します。文字列に2つの**整数**をマッチさせようとしているので、私は驚いていません。さらに、文字列が空である可能性があります。 –

+0

@Rotwangあなたは私にそれについてどうやって行くのか考えてもらえますか? – jonathan

答えて

0

問題は、可能な空の文字列に文字のインデックスを取得しようとしていることです。あなたが-1ここに来た理由です

String startText = autoCompleteTextView.getText().toString(); 
int start = startText.indexOf(0); 
int end = startText.indexOf(1); 
あなたは、例えば、リスナーにその文を追加することもできます

autoCompleteTextView.addTextChangedListener()を入力し、実際のテキストの変更箇所で処理します。

+0

ここでtextchangelistenerを使用するには – jonathan

+0

それは私のために働いていません – jonathan

関連する問題