Android 显示自定义对象字段的微调器项

Android 显示自定义对象字段的微调器项,android,spinner,Android,Spinner,我有一个微调器,我正在使用ArrayAdapter来填充它。我希望能够在每个微调器项中显示自定义对象的字段: 图像看起来有点模糊,但它包含“储蓄”、“账号”和“余额”作为自定义对象的字段 我怎样才能把它完全展示出来 为微调器项目创建自定义XML布局文件(在app/res/layout/文件夹中) 这应该包含3个TextView,每个TextView显示自定义对象的字段(因此1个TextView表示“储蓄”,1个表示“账号”,另一个表示“余额”。当然,您可以根据自定义对象修改这些字段 创建从Ar

我有一个微调器,我正在使用ArrayAdapter来填充它。我希望能够在每个微调器项中显示自定义对象的字段:

图像看起来有点模糊,但它包含“储蓄”、“账号”和“余额”作为自定义对象的字段

我怎样才能把它完全展示出来

  • 为微调器项目创建自定义XML布局文件(在
    app/res/layout/
    文件夹中)

    这应该包含3个
    TextView
    ,每个
    TextView
    显示自定义对象的字段(因此1个TextView表示“储蓄”,1个表示“账号”,另一个表示“余额”。当然,您可以根据自定义对象修改这些字段

  • 创建从
    ArrayAdapter

    您需要覆盖
    getView()
    getDropDownView()
    以使用新创建的布局为微调器充气

    @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;
    }
    
  • 将自定义适配器列表设置为活动中的
    列表

    spinner = (Spinner) findViewById(R.id.spinner);
    CustomArrayAdapter adapter = new CustomArrayAdapter(this, getList());
    spinner.setAdapter(adapter);
    
  • 关于它是如何制作的。

    请参阅此可能的副本