0

我有一个带有 MatrixCursor 作为适配器的 AutoCompleteTextView。AutoCompleteTextView 有一个 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()其中会返回一些对象标识符。

如何获取在单击下拉项之前存在的自动完成视图的实际文本?

4

2 回答 2

0

尝试投射SpannableStringBuilderCharSequence

于 2010-10-13T20:09:42.557 回答
0

好吧,代码中总是有另一种方式(肮脏的或最好的)。

TextWatcher在 AutoCompleteView 中添加了一个并使用beforeTextChanged()事件来记录文本内容并在onItemClick()!

于 2010-10-16T08:28:34.403 回答