Form = (CreditCardForm) findViewById(R.id.credit_card_form);
Form.setCardNumber("4242 4242 4242 4242", false)
If I put without setCardNumber() all works. But If I put it, app crashes with this error
04-26 00:52:53.532 6585-6585/me.xceed.xceed E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: me.xceed.xceed, PID: 6585
java.lang.RuntimeException: Unable to start activity ComponentInfo{me.xceed.xceed/me.xceed.xceed.AddCreditCardActivity}: java.lang.IndexOutOfBoundsException: setSpan (3 ... 3) ends beyond length 0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.IndexOutOfBoundsException: setSpan (3 ... 3) ends beyond length 0
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1022)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:615)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
at android.text.Selection.setSelection(Selection.java:123)
at android.text.Selection.setSelection(Selection.java:134)
at android.widget.EditText.setSelection(EditText.java:115)
at com.devmarvel.creditcardentry.fields.CreditCardText.afterTextChanged(CreditCardText.java:55)
at android.widget.TextView.sendAfterTextChanged(TextView.java:8615)
at android.widget.TextView.setText(TextView.java:4645)
at android.widget.TextView.setText(TextView.java:4489)
at android.widget.EditText.setText(EditText.java:101)
at android.widget.TextView.setText(TextView.java:4464)
at com.devmarvel.creditcardentry.internal.CreditCardEntry.setCardNumber(CreditCardEntry.java:346)
at com.devmarvel.creditcardentry.library.CreditCardForm.setCardNumber(CreditCardForm.java:211)
at me.xceed.xceed.AddCreditCardActivity.onCreate(AddCreditCardActivity.java:44)
at android.app.Activity.performCreate(Activity.java:6221)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
now that we allow setting of arbitrary strings, I had to loosen up some behavior. please try the latest commit on master 4daae489fd71228adcd835b5f37f8a084d0a8248
And this is the code
If I put without setCardNumber() all works. But If I put it, app crashes with this error 04-26 00:52:53.532 6585-6585/me.xceed.xceed E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: me.xceed.xceed, PID: 6585 java.lang.RuntimeException: Unable to start activity ComponentInfo{me.xceed.xceed/me.xceed.xceed.AddCreditCardActivity}: java.lang.IndexOutOfBoundsException: setSpan (3 ... 3) ends beyond length 0 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) at android.app.ActivityThread.access$900(ActivityThread.java:172) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5832) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) Caused by: java.lang.IndexOutOfBoundsException: setSpan (3 ... 3) ends beyond length 0 at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1022) at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:615) at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611) at android.text.Selection.setSelection(Selection.java:123) at android.text.Selection.setSelection(Selection.java:134) at android.widget.EditText.setSelection(EditText.java:115) at com.devmarvel.creditcardentry.fields.CreditCardText.afterTextChanged(CreditCardText.java:55) at android.widget.TextView.sendAfterTextChanged(TextView.java:8615) at android.widget.TextView.setText(TextView.java:4645) at android.widget.TextView.setText(TextView.java:4489) at android.widget.EditText.setText(EditText.java:101) at android.widget.TextView.setText(TextView.java:4464) at com.devmarvel.creditcardentry.internal.CreditCardEntry.setCardNumber(CreditCardEntry.java:346) at com.devmarvel.creditcardentry.library.CreditCardForm.setCardNumber(CreditCardForm.java:211) at me.xceed.xceed.AddCreditCardActivity.onCreate(AddCreditCardActivity.java:44) at android.app.Activity.performCreate(Activity.java:6221) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) at android.app.ActivityThread.access$900(ActivityThread.java:172) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5832) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)