【发布时间】:2014-04-27 12:54:49
【问题描述】:
我正在尝试使用自定义 ArrayAdapter 填充微调器。我认为微调器已正常填充,但是当应用程序尝试打开它时,微调器显示 com.jeanjn.guiadeacademia....,但要显示我在 getView(...)
Obs:对不起,我的英语不太好。
Obs2:我用 ListView 做到了,而且效果很好。现在有了 Spinner...
我的代码:
private void carregarSpinner() {
Spinner spinner = (Spinner) findViewById(R.id.CateSpinner);
DataBase db = new DataBase(this);
Cursor cursor = db.getData("SELECT * FROM Categoria");
ArrayList<Categoria> txts = new ArrayList<Categoria>();
while(cursor.moveToNext())
{
Categoria ex = new Categoria();
ex.setNome(cursor.getString(1));
ex.setId(cursor.getInt(0));
txts.add(ex);
}
AdapterCategoria adapter = new AdapterCategoria(this, txts);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
db.closeDB(cursor);
}
public class AdapterCategoria extends ArrayAdapter<Categoria> {
private final Context context;
private final ArrayList<Categoria> itemsArrayList;
public AdapterCategoria(Context context, ArrayList<Categoria> itemsArrayList) {
super(context, R.id.txvCategoria, itemsArrayList);
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 1. Create inflater
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 2. Get rowView from inflater
View rowView = inflater.inflate(R.layout.categoria_model, parent, false);
// 3. Get the two text view from the rowView
TextView labelView = (TextView) rowView.findViewById(R.id.txvCategoria);
// 4. Set the text for textView
labelView.setText(itemsArrayList.get(position).getNome());
labelView.setTag(itemsArrayList.get(position).getId());
// 5. retrn rowView
return rowView;
}
【问题讨论】:
标签: android textview spinner android-arrayadapter