基于Android的英文电子词典开发实例
2010-08-11 10:34:00 来源:WEB开发网{
TextView tvWordItem = (TextView) view;
tvWordItem.setText(cursor.getString(cursor.getColumnIndex("_id")));
}
@Override
public void bindView(View view, Context context, Cursor cursor)
{
setView(view, cursor);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent)
{
View view = layoutInflater.inflate(R.layout.word_list_item, null);
setView(view, cursor);
return view;
}
public DictionaryAdapter(Context context, Cursor c, boolean autoRequery)
{
super(context, c, autoRequery);
// 通过系统服务获得LayoutInflater对象
layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
}
在编写DictionaryAdapter类时应注意如下3点:
1. 为了将Cursor对象与AutoCompleteTextView组件绑定, DictionaryAdapter类必须从CursorAdapter类继承。
2. 由于CursorAdapter类中的convertToString方法直接返回了Cursor对象的地址,因此,在 DictionaryAdapter类中必须覆盖convertToString方法,以返回当前选中的单词。CursorAdapter类中的 convertToString方法的源代码。
public CharSequence convertToString(Cursor cursor)
{
// 如果cursor不为null,返回Cursor对象的地址(cursor.toString())
return cursor == null ? "" : cursor.toString();
}
覆盖后的convertToToString方法的源代码如下:
public CharSequence convertToString(Cursor cursor)
{
return cursor == null ? "" : cursor.getString(cursor
.getColumnIndex("_id"));
}
在这里要注意一下,当选中AutoCompleteTextView组件中单词列表中某一个单词后,系统会用convertToString方法的返回值来设置AutoCompleteTextView组件中的文本。因此,必须使用Cursor的getString来获得相应的字段值。
更多精彩
赞助商链接