Buggy code:
@ SuppressLint ( "HandlerLeak" ) public class ListViewCellInputText extends ListViewCellBase { private static String TAG = ListViewCellInputText . class . getSimpleName ( ) ; public ListViewCellInputText ( String cellType , Context context , ListViewBaseAdapter listViewBaseAdapter ) { } @ SuppressLint ( "InflateParams" ) public View getView ( final int position , View convertView , ViewGroup parent , JsonObject dataObj ) { final ListViewCellInputText . DataModel data ; final ListViewCellInputText . ViewHolder holder ; data = GsonUtil . fromJson ( dataObj , ListViewCellInputText . DataModel . class ) ; if ( convertView == null ) { convertView = LayoutInflater . from ( getContext ( ) ) . inflate ( widget_listviewcell_input_text , null ) ; holder = new ListViewCellInputText . ViewHolder ( ) ; holder . editText = ( ( EditText ) ( convertView . findViewById ( widget_listviewcell_input_text_edittext ) ) ) ; holder . btn = ( ( Button ) ( convertView . findViewById ( widget_listviewcell_input_text_btn ) ) ) ; convertView . setTag ( holder ) ; } else { holder = ( ( ListViewCellInputText . ViewHolder ) ( convertView . getTag ( ) ) ) ; } setHint ( holder . editText , data . hint ) ; setlines ( holder . editText , data . lines ) ; holder . editText . setTextSize ( data . textSize ) ; <START_BUG> holder . editText . setText ( data . inputText ) ; <END_BUG> setEnable ( holder . editText , data . enable ) ; getListViewBaseAdapter ( ) . addInputMap ( data . name , holder . editText . getText ( ) . toString ( ) ) ; if ( data . inputType . equals ( "number" ) ) { holder . editText . setInputType ( TYPE_CLASS_NUMBER ) ; } else if ( data . inputType . equals ( "phone" ) ) { TelephonyManager telephonyManager = ( ( TelephonyManager ) ( ECApplication . getInstance ( ) . getNowActivity ( ) . getSystemService ( TELEPHONY_SERVICE ) ) ) ; String nativePhoneNumber = telephonyManager . getLine1Number ( ) ; if ( ! ( StringUtil . isEmpty ( nativePhoneNumber ) ) ) { if ( nativePhoneNumber . startsWith ( "+" ) ) { nativePhoneNumber = nativePhoneNumber . substring ( 3 ) ; } holder . editText . setText ( nativePhoneNumber ) ; getListViewBaseAdapter ( ) . addInputMap ( data . name , holder . editText . getText ( ) . toString ( ) ) ; } holder . editText . setInputType ( TYPE_CLASS_PHONE ) ; } else if ( data . inputType . equals ( "email" ) ) { holder . editText . setInputType ( TYPE_TEXT_VARIATION_EMAIL_ADDRESS ) ; } else if ( data . inputType . equals ( "password" ) ) { holder . editText . setInputType ( ( ( InputType . TYPE_CLASS_TEXT ) | ( InputType . TYPE_TEXT_VARIATION_PASSWORD ) ) ) ; } else if ( data . inputType . equals ( "text" ) ) { holder . editText . setInputType ( TYPE_CLASS_TEXT ) ; } setlines ( holder . editText , data . lines ) ; holder . editText . addTextChangedListener ( new TextWatcher ( ) { @ Override public void onTextChanged ( CharSequence s , int start , int before , int count ) { } @ Override public void beforeTextChanged ( CharSequence s , int start , int count , int after ) { } @ Override public void afterTextChanged ( Editable s ) { getListViewBaseAdapter ( ) . addInputMap ( data . name , holder . editText . getText ( ) . toString ( ) ) ; } } ) ; if ( ( ! ( StringUtil . isEmpty ( data . type ) ) ) && ( data . type . equals ( "captcha" ) ) ) { String SMS_URI_INBOX = "content:////sms//inbox" ; Handler smsHandler = new Handler ( ) { } ; ListViewCellInputText . SmsObserver smsObserver = new ListViewCellInputText . SmsObserver ( getContext ( ) , smsHandler , holder . editText ) ; getContext ( ) . getContentResolver ( ) . registerContentObserver ( Uri . parse ( SMS_URI_INBOX ) , true , smsObserver ) ; } if ( ! ( StringUtil . isEmpty ( data . btnName ) ) ) { holder . btn . setVisibility ( VISIBLE ) ; holder . btn . setText ( data . btnName ) ; HashMap < String , Object > map = new HashMap < String , Object > ( ) ; map . put ( "target" , "button" ) ; map . put ( "position" , position ) ; holder . btn . setTag ( map ) ; holder . btn . setOnClickListener ( new OnClickListener ( ) { @ SuppressWarnings ( "unchecked" ) @ Override public void onClick ( View v ) { CountDownButtonHelper helper = new CountDownButtonHelper ( holder . btn , "" , 60 , 1 ) ; helper . setOnFinishListener ( new OnFinishListener ( ) { @ Override public void finish ( ) { holder . btn . setText ( "验证" ) ; } } ) ; helper . start ( ) ; LogUtil . d ( ListViewCellInputText . TAG , getSmsFromPhone ( ) . toString ( ) ) ; HashMap < String , Object > eventParams = new HashMap < String , Object > ( ) ; HashMap < String , Object > map = new HashMap < String , Object > ( ) ; map = ( ( HashMap < String , Object > ) ( v . getTag ( ) ) ) ; eventParams . put ( "target" , map . get ( "target" ) . toString ( ) ) ; eventParams . put ( "position" , ( "" + ( map . get ( "position" ) ) ) ) ; eventParams . put ( "_form" , new JSONObject ( getListViewBaseAdapter ( ) . getInputMap ( ) ) ) ;

Fix:
holder . editText . setText ( getListViewBaseAdapter ( ) . getInputMap ( ) . get ( data . name ) ) ;