我在我的微调器上使用SimpleCursorAdapter因为我想创建一个包含多行的自定义dropDownList并从我的数据库中填充它。我已经很好地完成了这个任务,但是在我的布局活动中,微调器显示了所选的行,我希望它有一个单独的布局,因此它只显示所选行的第一行。我怎么能做到这一点?
String fields[] = {"name", "lovibond", "gravity"};
nameAdapter = new GrainSpinnerAdapter(this, R.layout.grain_spinner_row, data, fields, new int[] { R.id.GrainSpinnerName, R.id.GrainSpinnerLovibond, R.id.GrainSpinnerGravity });
nameSpinner.setAdapter(nameAdapter);
这是我的SimpleCursorAdapter代码:
public class GrainSpinnerAdapter extends SimpleCursorAdapter {
private Context myContext;
public GrainSpinnerAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
myContext = context;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor);
int nameColumn = cursor.getColumnIndex("name");
String getName = cursor.getString(nameColumn);
TextView name = (TextView)view.findViewById(R.id.GrainSpinnerName);
name.setText(getName);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
super.newView(context, cursor, parent);
View view = View.inflate(context, R.layout.grain_spinner, null);
return view;
}
@Override
public View newDropDownView(Context context, Cursor cursor, ViewGroup parent) {
super.newDropDownView(context, cursor, parent);
View view = View.inflate(context, R.layout.grain_spinner_row, null);
int nameColumn = cursor.getColumnIndex("name");
String getName = cursor.getString(nameColumn);
TextView name = (TextView)view.findViewById(R.id.GrainSpinnerName);
name.setText(getName);
int loviColumn = cursor.getColumnIndex("lovibond");
String getLovi = cursor.getString(loviColumn);
TextView lovi = (TextView)view.findViewById(R.id.GrainSpinnerLovibond);
lovi.setText(getLovi);
int gravityColumn = cursor.getColumnIndex("gravity");
String getGravity = cursor.getString(gravityColumn);
TextView gravity = (TextView)view.findViewById(R.id.GrainSpinnerGravity);
gravity.setText(getGravity);
return view;
}
答案 0 :(得分:0)
我认为你问的是BaseAdapter类的getDropDownView()
方法。
在newView方法中执行您已完成的操作并为单行显示提供布局。
然后实现newDropDownView以扩充另一个提供多行的布局。 下拉视图用于在用户选择下拉列表时提供的弹出菜单中创建行。