2011-12-22 34 views
7

tıklandığında bir hata var android çalışıyorum. bir problemim var. metin kutusuna ikinci kez tıkladığımda uygulamanız çöküyor.Android: benim editText

java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0 
android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:943) 
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:522) 
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:514) 
android.text.Selection.setSelection(Selection.java:74) 
android.text.Selection.setSelection(Selection.java:85) 
android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:410) 
android.widget.TextView.onTouchEvent(TextView.java:6715) 
android.widget.EditText.onTouchEvent(EditText.java:190) 
android.view.View.dispatchTouchEvent(View.java:3766) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1731) 
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1120) 
android.app.Activity.dispatchTouchEvent(Activity.java:2086) 
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1715) 
android.view.ViewRoot.handleMessage(ViewRoot.java:1787) 
android.os.Handler.dispatchMessage(Handler.java:99) 

bu sorunun nedenini bulmak için bana yardım edin:

bu benim Logcat mesajdır. Önceden teşekkür ederiz.

+0

kodunuzu kodlayın .. –

+0

Ben aynı anda, ben de odak metninde Edittext barkod tarama yaparken. Herhangi bir kod görmeden –

+0

, çözünürlüğü bulamıyoruz. Logcat'in ilk sırada dediği gibi bir boyut sorunu. Ben soru ve 1 yıldız 5 puan var anlamıyorum, çünkü bu soru iyi yapılmış ve çok net değil – xanexpt

cevap

2

senin sorunun nedeni aşağıdaki hatadır: Yapmak önce java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0

Anlaşılan bir şey üzerinde bir yayılma ayarını ediyoruz, ancak textfield bir IndexOutOfBoundsException veren boş, giriş dizesi uzunluğunu kontrol setSpan'a bir çağrı.

DÜZENLEME: Sadece kısa açıklama

, bir IndexOutOfBoundsException her zaman dizinin gerçek uzunluğundan fazla olan bir dizinin parçası erişmeye çalışıyor demektir. Dize nesneleri, karakter dizileri olarak tanımlanır. Böyle bir şey yapmaya çalıştığınızda, ancak dizenin uzunluğu sıfıra eşit olduğunda, aslında bir dizinin sınırının ötesine geçersiniz.

+0

Bu, kullanıcı EditText'in önerilerinden de metni seçtiğinde gerçekleşiyor. Maksimum uzunluk özelliği etkindir. – Raj

2

Kodunuz hakkında açıklama yapmadınız. Yani probleminizi aşmak zor.

this bloguna göz atın. Bu size yardımcı olabilir. Bu blog, bir zaman seçici sorunu hakkında diyor. Aynı zamanda EditText & TextView için de geçerlidir.

setSaveFromParentEnabled (yanlış) & setSaveEnabled (doğru) sorunu çözmek gerekir.

tp = (TimePicker) findViewById(R.id.timePickerComponent); 
//two lines to add after 
tp.setSaveFromParentEnabled(false); 
tp.setSaveEnabled(true); 
Eğer belgeler aşağıda okuyabilirsiniz başlatılması metin kutusu (vb metin düzenleme veya)

editText.setSaveFromParentEnabled(false); 
editText.setSaveEnabled(true); 

sonra ve bu konuda daha fazla belge için kodunun altına ekleyebilirsiniz

1

setSpan (4 ... 4), 0 uzunluğunun ötesine biter, bu, 4 beyaz boşluk karakter dizgisine sahip olduğunuz anlamına gelir, gerçek/kesilmiş uzunluğu sıfırdır, bu ayarı IndexOutOfBoundsException neden olur, ayarlamadan önce kesilen uzunluğu kontrol etmelisiniz