从Spinner使用改造从返回的对象中提取字符串

问题描述 投票:0回答:1

我有3个微调器列表。第一个将要求用户选择他拥有的车辆品牌。第二个询问用户车辆的型号,但是要正确加载端点,我需要知道所选品牌的代码。我不愿意从微调器对象中提取代码。我该怎么办?

    // add items into spinner dynamically
public void addItemsOnSpinner1() {
    listM = new ArrayList<>();

    ApiService.getInstance().getMarcas().enqueue(new Callback<List<MarcasResponse>>() {
                                                     @Override
                                                     public void onResponse(Call<List<MarcasResponse>> call, Response<List<MarcasResponse>> response) {
                                                         spinner1 = (Spinner) findViewById(R.id.spinner1);
                                                         listM = response.body();
                                                         ArrayAdapter<MarcasResponse> adapterM = new ArrayAdapter<>(ListaVeiculosActivity.this,
                                                                 android.R.layout.simple_spinner_item, listM);

                                                         adapterM.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                                         spinner1.setAdapter(adapterM);
                                                         // after getting new data you have to notify your adapter that your data set is changed like below.
                                                         adapterM.notifyDataSetChanged();
                                                     }
                                                     @Override
                                                     public void onFailure(Call<List<MarcasResponse>> call, Throwable t) {
                                                     }
        });
}

改造接口..

        @GET("marcas")
    Call<List<MarcasResponse>> getMarcas();

改装配置:

public class ListaMarcasAdapter extends RecyclerView.Adapter<ListaMarcasAdapter.ListaVeiculosViewHolder> {


private Context context;
private List<MarcasResponse> marcas;

public ListaMarcasAdapter(Context context, List<MarcasResponse> marcas) {
    this.context = context;
    this.marcas = marcas;
}



@NonNull
@Override
public ListaVeiculosViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_veiculo, parent, false);

    return new ListaVeiculosViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ListaVeiculosViewHolder holder, int position) {
    holder.textNomeVeiculo.setText(marcas.get(position).getName());


    holder.codigo = marcas.get(position).getCodigo();
}

@Override
public int getItemCount() {
    return (marcas!= null && marcas.size()>0) ? marcas.size() : 0;
}

static class ListaVeiculosViewHolder extends RecyclerView.ViewHolder{

    private TextView textNomeVeiculo;
    private String codigo;

    public ListaVeiculosViewHolder(View itemView){
        super(itemView);

        textNomeVeiculo = itemView.findViewById(R.id.text_veiculo);
    }

}}

我在适配器上找到了String,并将其绑定,但是我不知道如何从适配器中提取此“ String codigo”。有没有办法做到这一点?我不想在Spinner上显示“código”。我只想在Spinner上显示“名称”,并在JSON上获取名称随附的“código”。JSON如下:

[{"nome":"Acura","codigo":"1"},{"nome":"Agrale","codigo":"2"}]
json parsing retrofit spinner adapter
1个回答
0
投票

没人? 😕我试图找到另一种方法,但是我找不到它

© www.soinside.com 2019 - 2024. All rights reserved.