我有一个Spinner,我正在使用ArrayAdapter来填充它。我希望能够在每个微调器项内显示自定义对象的字段:
图片看起来有点模糊,但它包含" Savings","帐号"和Balance作为自定义对象的字段。
我怎样才能完全表现出来?
答案 0 :(得分:0)
为微调项创建自定义XML布局文件(在app/res/layout/
文件夹中)
这应该包含3 TextView
个,每个TextView
显示自定义对象的字段(因此1个TextView用于“Savings”,1个用于“帐号”,另一个用于“balance”当然,您可以根据自定义对象修改这些内容。
创建一个从ArrayAdapter<String>
您需要覆盖getView()
和getDropDownView()
以使用新创建的布局对Spinner进行充气。
@Override
public @NonNull View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final View view = mInflater.inflate(R.layout.my_custom_spinner_item, parent, false);
TextView savingsTV = (TextView) view.findViewById(R.id.tv_savings);
TextView accountNumberTV = (TextView) view.findViewById(R.id.tv_account_number);
TextView balanceTV = (TextView) view.findViewById(R.id.tv_balance);
CustomObject object = objectsList.get(position);
// Format your fields to strings here
savingsTV.setText(object.getSavings());
accountNumberTV.setText(object.getAccountNumber());
balanceTV.setText(object.getBalance());
return view;
}
将自定义适配器列表设置为活动<{p>中的List<CustomObject>
spinner = (Spinner) findViewById(R.id.spinner);
CustomArrayAdapter adapter = new CustomArrayAdapter(this, getList());
spinner.setAdapter(adapter);