用于显示自定义对象字段的微调项

时间:2018-06-18 06:40:38

标签: android spinner

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

spinner with custom object fields

图片看起来有点模糊,但它包含" Savings","帐号"和Balance作为自定义对象的字段。

我怎样才能完全表现出来?

1 个答案:

答案 0 :(得分:0)

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

    这应该包含3 TextView个,每个TextView显示自定义对象的字段(因此1个TextView用于“Savings”,1个用于“帐号”,另一个用于“balance”当然,您可以根据自定义对象修改这些内容。

  2. 创建一个从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;
    }
    
  3. 将自定义适配器列表设置为活动<{p>中的List<CustomObject>

    spinner = (Spinner) findViewById(R.id.spinner);
    CustomArrayAdapter adapter = new CustomArrayAdapter(this, getList());
    spinner.setAdapter(adapter);
    
  4. Here is a good example如何制作。