我正在使用 AutoCompleteTextView 来显示用户可以选择的项目列表。当用户选择一个项目时,这个选定的项目会填充 AutoCompleteTextView 下方的 ListView。到目前为止,一切都很好。
问题:从 AutoCompleteTextView 中选择项目后,AutoCompleteTextView 主体本身(这个“文本框”)被一些文本填满,这是 SimpleCursorAdapter 资源(实际显示的文本是:android.widget。 SimpleCursorAdapter@4107d010)。
我希望拥有什么:我希望 AutoCompleteTextView 刷新并在其自身的正文中不显示任何文本,以便用户可以立即输入更多文本并从下拉列表中选择更多项目。
你能给我一个提示,我怎么能做到这一点?
补充资料:
谢谢凯尔。我所做的是将 SimpleCursorAdapter 扩展到 SimpleCursorAdapterNoText。然后我就像你说的那样覆盖了 convertToString() 。我没有更改 BindView,因为我阅读了两次文档,但我仍然不明白我应该在 BindView 中更改什么。无论如何-这并没有解决问题-我仍然在自动完成中得到相同的字符串。这是我的代码:
@SuppressWarnings("deprecation")
private void populateListView()
{
// Get all of the notes from the database and create the item list
Cursor tournamentXCursor = mDbHelper.retrieveTrounamentX(mRowId);
startManagingCursor(tournamentXCursor);
// Create an array to specify the fields we want to display in the list (only name)
String[] from = new String[] {StournamentConstants.TblX.TBL_COLUMN_X_NAME};
// and an array of the fields we want to bind those fields to (in this case just name)
int[] to = new int[]{R.id.competitor_row};
// Now create an array adapter and set it to display using our row
SimpleCursorAdapterNoText tournamentX = new SimpleCursorAdapterNoText(this, R.layout.competitor_row, tournamentXCursor, from, to);
tournamentX.convertToString(tournamentXCursor);
setListAdapter(tournamentX);
}
任何人都知道我做错了什么?
编辑:这是我继承的 SimpleCursorAdapter 类
public class SimpleCursorAdapterNoText extends SimpleCursorAdapter
{
public SimpleCursorAdapterNoText(Context context, int layout, Cursor c,
String[] from, int[] to)
{
super(context, layout, c, from, to);
// TODO Auto-generated constructor stub
}
@Override
public CharSequence convertToString(Cursor cursor)
{
//Empty string so AutoComplete shows no text
return "";
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// TODO Auto-generated method stub
super.bindView(view, context, cursor);
}
}
我更改了呼叫代码并消除了
tournamentX.convertToString(tournamentXCursor);
我确信不仅要在我的子类中覆盖它,而且还要在我的调用代码中使用它,以便消除 AutoComplete 中的文本,这一点很重要。
我很沮丧地说这仍然没有帮助 - 在我从 AutoComplete 选择列表中选择一项之后,我继续在 AutoCompleteBox 中获取 android.database.sqlite.SQLiteCursor@41377578 。
感谢:D。