ACTUALIZAR:
Me las arreglo para hacerlo, pero no estoy muy seguro de si es la forma correcta.
HolderMap.java
- ¿Hay algún problema si también elimino la información del usuario al desinstalar Android Studio?
- ¿Quién es el mejor desarrollador de aplicaciones de Android en Canadá?
- Cómo obtener las ID de los usuarios de Google
- ¿Cuál es el alcance de Android en los automóviles?
- ¿Existe una aplicación de Android que silencia las notificaciones durante la noche pero permite a las personas que llaman persistentemente o de alguna manera proporciona una opción para que la persona denote la llamada como una emergencia?
HolderMap de clase pública {
Clase privada mClass;
diseño privado int;
Public HolderMap (Class mClass, int layout) {
this.mClass = mClass;
this.layout = layout;
}
public Class GetClass () {return mClass; }
public int GetLayout () {return layout; }
}
Main.java
List holder = new ArrayList ();
holder.add (nuevo HolderMap (HeaderView.class, R.layout.header_row));
holder.add (nuevo HolderMap (ItemView.class, R.layout.item_row));
holder.add (nuevo HolderMap (FooterView.class, R.layout.footer_row));
Adapter.java
@Anular
public CRecyclerViewHolder onCreateViewHolder (ViewGroup parent, int viewType) {
tratar {
Clase TClass = holderMaps.get (viewType) .GetClass ();
Constructor Constructor = tClass.getConstructor (View.class);
int layoutRes = holderMaps.get (viewType) .GetLayout ();
constructor return (CRecyclerViewHolder)
.newInstance (LayoutInflater.from (parent.getContext ())
.inflate (layoutRes, parent, false));
} catch (Excepción e) {
e.printStackTrace ();
}
volver nulo;
}
La forma en que funciona es que viewType se usará como un índice para asignar el marcador de vista en la lista de arrays para obtener su clase y su diseño e inflarlo.