在Android Studio中的viewHolder自定义列表中放置一个开关

在Android Studio中的viewHolder自定义列表中放置一个开关,android,Android,我已经创建了一个应用程序,一个个性化列表,其中包含来自Web服务的数据,正如您看到的,它的一个字段是state,但这会以数字(0,1,2)的形式返回给您。我想做的是将它放在“VACANTE”、“occupated”、“RESERVED”中,这是通过一个开关实现的,但我不知道如何应用它 viewHolder.estado.setText(items.get(i).getEstado());//number (0,1,2) 这是我从PHP Web服务中提取的数据这是我当前的代码: public c

我已经创建了一个应用程序,一个个性化列表,其中包含来自Web服务的数据,正如您看到的,它的一个字段是state,但这会以数字(0,1,2)的形式返回给您。我想做的是将它放在“VACANTE”、“occupated”、“RESERVED”中,这是通过一个开关实现的,但我不知道如何应用它

viewHolder.estado.setText(items.get(i).getEstado());//number (0,1,2)
这是我从PHP Web服务中提取的数据这是我当前的代码:

public class MetaAdapter extends RecyclerView.Adapter<MetaAdapter.MetaViewHolder>
        implements ItemClickListener {

    /**
     * Lista de objetos {@link Meta} que representan la fuente de datos
     * de inflado
     */
    private List<Plaza> items;

    /*
    Contexto donde actua el recycler view
     */
    private Context context;


    public MetaAdapter(List<Plaza> items, Context context) {
        this.context = context;
        this.items = items;
    }

    @Override
    public int getItemCount() {
        return items.size();
    }

    @Override
    public MetaViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.item_list, viewGroup, false);
        return new MetaViewHolder(v, this);
    }

    @Override
    public void onBindViewHolder(MetaViewHolder viewHolder, int i) {
        viewHolder.nivel.setText(items.get(i).getNivel());
        viewHolder.estado.setText(items.get(i).getEstado());
        viewHolder.colegio.setText(items.get(i).getIe());
        viewHolder.especialidad.setText(items.get(i).getEspecialidad());
        viewHolder.codigo.setText(items.get(i).getCodigoPlaza());
    }


    /**
     * Sobrescritura del método de la interfaz {@link ItemClickListener}
     *
     * @param view     item actual
     * @param position posición del item actual
     */
    @Override
    public void onItemClick(View view, int position) {
        DetailActivity.launch(
                (Activity) context, items.get(position).getPlazaID());
    }


    public static class MetaViewHolder extends RecyclerView.ViewHolder
            implements View.OnClickListener {
        // Campos respectivos de un item
        public TextView nivel;
        public TextView estado;
        public TextView colegio;
        public TextView especialidad;
        public TextView codigo;
        public ItemClickListener listener;


        public MetaViewHolder(View v, ItemClickListener listener) {
            super(v);
            nivel = (TextView) v.findViewById(R.id.nivel);
            estado = (TextView) v.findViewById(R.id.estado);
            colegio = (TextView) v.findViewById(R.id.colegio);
            especialidad = (TextView) v.findViewById(R.id.especialidad);
            codigo = (TextView) v.findViewById(R.id.codigo);
            this.listener = listener;
            v.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            listener.onItemClick(v, getAdapterPosition());
        }
    }
}


    interface ItemClickListener {
        void onItemClick(View view, int position);
}
公共类元适配器扩展了RecyclerView.Adapter
实现ItemClickListener{
/**
*达托斯森林代表的对象列表{@link Meta}
*消炎
*/
私人清单项目;
/*
Conxto donde Acta el回收站视图
*/
私人语境;
公共元适配器(列表项、上下文){
this.context=上下文;
这个项目=项目;
}
@凌驾
public int getItemCount(){
返回items.size();
}
@凌驾
public MetaViewHolder onCreateViewHolder(视图组视图组,int i){
视图v=LayoutInflater.from(viewGroup.getContext())
.充气(R.layout.item_列表,视图组,false);
返回新的MetaViewHolder(v,此);
}
@凌驾
BindViewHolder上的公共无效(MetaViewHolder viewHolder,int i){
viewHolder.nivel.setText(items.get(i.getNivel());
viewHolder.estado.setText(items.get(i.getEstado());
viewHolder.colegio.setText(items.get(i.getIe());
viewHolder.specialidad.setText(items.get(i.getspecialidad());
viewHolder.codigo.setText(items.get(i.getCodigoPlaza());
}
/**
*Sobrecritura del método de la interfaz{@link itemclicklister}
*
*@param查看项目实际值
*@param position posición del项目实际值
*/
@凌驾
公共虚线单击(视图,int位置){
DetailActivity.launch(
(活动)上下文,items.get(position.getPlazaID());
}
公共静态类MetaViewHolder扩展了RecyclerView.ViewHolder
实现View.OnClickListener{
//联合国项目的尊重
公共文本视图nivel;
公共文本视图estado;
公共文本视图colegio;
公共文本视图;
公共文本视图codigo;
公共项ClickListener侦听器;
公共元视图持有者(视图v,项ClickListener侦听器){
超级(五);
nivel=(TextView)v.findviewbyd(R.id.nivel);
estado=(TextView)v.findViewById(R.id.estado);
colegio=(TextView)v.findviewbyd(R.id.colegio);
specialidad=(TextView)v.findViewById(R.id.specialidad);
codigo=(TextView)v.findviewbyd(R.id.codigo);
this.listener=listener;
v、 setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
onItemClick(v,getAdapterPosition());
}
}
}
接口项ClickListener{
void onItemClick(视图,int位置);
}
当前在我的应用程序中,如下所示:

然后需要为每个状态应用一个字符串,例如

public String getStateAsString(int state) {
    switch (state) {
        case 0:
            return "VACANTE";
        case 1:
            return "OCCUPIED";
        case 2:
           return "RESERVED";
        default:
           return "STATE NOT DEFINED";
    }
}
并调用该方法,而不是直接将状态分配为
int
,以查看文本:

/* 
 * Instead of 
 * viewHolder.codigo.setText(items.get(i).getCodigoPlaza());
 * you do the following
 */
int stateAsInt = items.get(i).getCodigoPlaza();
String stateAsString = getStateAsString(stateAsInt);
viewHolder.estado.setText(state);

然后需要为每个状态应用一个字符串,例如

public String getStateAsString(int state) {
    switch (state) {
        case 0:
            return "VACANTE";
        case 1:
            return "OCCUPIED";
        case 2:
           return "RESERVED";
        default:
           return "STATE NOT DEFINED";
    }
}
并调用该方法,而不是直接将状态分配为
int
,以查看文本:

/* 
 * Instead of 
 * viewHolder.codigo.setText(items.get(i).getCodigoPlaza());
 * you do the following
 */
int stateAsInt = items.get(i).getCodigoPlaza();
String stateAsString = getStateAsString(stateAsInt);
viewHolder.estado.setText(state);

您只是想将状态显示为
字符串(如“VACANTE”而不是“0”)还是想添加一个GUI元素来切换每个列表项的状态?只是想将状态显示为字符串(如“VACANTE”而不是“0”)您只是想将状态显示为
字符串(如“VACANTE”而不是“0”)或者您想添加一个GUI元素来切换每个列表项的状态吗?只需替换为字符串(如“VACANTE”而不是“0”)