getText () على outocompleteTextView إرجاع SpannablestringBuilder؟
-
30-09-2019 - |
سؤال
لديّ إكمال تلقائي مع مصفوفة كمحول. يحتوي OutoCompleTeTextView على onItemClickListener على النحو التالي:
public class AutoCompleteListClickListner implements OnItemClickListener
{
private AutoCompleteTextView acView;
public AutoCompleteListClickListner(AutoCompleteTextView view)
{
this.acView = view;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
/* tv is the selected view in the dropdown */
TextView tv = (TextView) ((LinearLayout) view).getChildAt(0);
Log.d(AndroidLogTag, "Before:>>>>" + this.acView.getText().toString());
this.acView.setText(tv.getText().toString());
Log.d(AndroidLogTag, "After:>>>>" + this.acView.getText().toString());
}
}
عند تحديد عنصر ما ، أرى متابعًا في السجل
10-14 00:34:37.893: DEBUG/MyApp(19151): Before:>>>>android.database.MatrixCursor@4643e388
10-14 00:34:37.912: DEBUG/MyApp(19151): After:>>>>Ankit V Jain
إذا رأيت السجل ، Before
إدخال السجل ، getText()
إرجاع أ SpannableStringBuilder
كائن و toString()
منه يعيد بعض معرف الكائن.
كيف أحصل على نص فعلي للعرض التلقائي الذي كان موجودًا قبل النقر فوق العنصر المنسدلة؟
المحلول 2
حسنًا ، هناك دائمًا طريقة أخرى (قذرة أو أفضل) في الكود.
أضفت أ TextWatcher
إلى الإكمال التلقائي واستخدامه beforeTextChanged()
حدث لتسجيل محتوى النص وإعادة استخدامه في onItemClick()
!
نصائح أخرى
حاول الصب SpannableStringBuilder
إلى CharSequence
لا تنتمي إلى StackOverflow