My problem is how to adapt this tutorial link
Since I have a Recycler using a modified adapter (I think it's like that, I'm new) and I want to get an id for example of the title (name) of each item, since they are different, and that I create the activity detail with the right information. As you will see in the row of the Recycler does not appear the txtD but in the activity detail xml, and that in the information that I want to pass in addition to the imageview that is shared.
public class T_Fisica implements Materias {
private final int image_t;
private final String nombre_t, text_t, text_d;
public class T_Fisica implements Materias {
private final int image_t;
private final String nombre_t, text_t, text_d;
public T_Fisica(int image_t, String nombre_t, String text_t, String text_d) {
this.image_t = image_t;
this.nombre_t = nombre_t;
this.text_t = text_t;
this.text_d= text_d;
}
public int getimage_t() {return image_t;}
public String getNombre_t() {return nombre_t;}
public String getText_t() {return text_t;}
public String getText_d(){return text_d;}
public int getId() {
return nombre_t.hashCode();
}
@Override
public int getViewType() {
return 1;
}
}
Interface Matters
public interface Materias {
int getViewType();
}
Item xml (row)
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="1dp"
android:layout_marginStart="70dp"
android:elevation="7dp">
<TextView
android:id="@+id/textView90"
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="center"
android:layout_marginBottom="30dp"
android:shadowColor="#212121"
android:shadowDx="-8"
android:shadowDy="1"
android:shadowRadius="10"
android:text="TextView2"
android:textColor="#fafafa"
android:textSize="48sp"
android:textStyle="bold" />
</RelativeLayout>
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="370dp"
android:layout_height="440dp"
android:layout_marginStart="2dp"
android:layout_marginEnd="40dp"
android:layout_marginTop="50dp"
android:foreground="?android:attr/selectableItemBackground"
app:cardBackgroundColor="#455a64"
app:cardCornerRadius="3dp"
app:cardElevation="4dp"
android:layout_centerHorizontal="true">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card2"
android:layout_width="315dp"
android:layout_height="150dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="140dp"
app:cardBackgroundColor="#c9cd5c"
app:cardCornerRadius="0dp"
app:cardElevation="6dp">
<TextView
android:id="@+id/textView91"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="40dp"
android:gravity="center"
android:text="TextView3"
android:textColor="#eceff1"
android:textSize="12.5sp"
android:textStyle="italic"
android:transitionGroup="false" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/card3"
android:layout_width="300dp"
android:layout_height="280dp"
android:layout_marginLeft="50dp"
android:layout_marginRight="10dp"
android:layout_marginTop="315dp"
android:layout_marginBottom="10dp"
app:cardCornerRadius="0dp"
app:cardElevation="6dp">
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:transitionName="@string/image_transition" />
</android.support.v7.widget.CardView>
<ImageView
android:id="@+id/Image1"
android:layout_width="60dp"
android:layout_height="60dp"
android:elevation="7dp"
android:scaleType="centerCrop"
app:srcCompat="@mipmap/comillas"
android:layout_marginTop="100dp"
android:layout_marginLeft="2dp"/>
activity detail xml
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card19"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="20dp"
app:cardElevation="8dp">
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="150dp"
android:scaleType="centerCrop"
android:transitionName="@string/image_transition" />
</android.support.v7.widget.CardView>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
tools:layout_conversion_absoluteWidth="384dp"
tools:layout_conversion_absoluteHeight="72dp"
android:layout_width="match_parent"
android:layout_height="300dp">
</include>
<android.support.v7.widget.CardView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/card20"
android:layout_marginTop="20dp"
android:layout_marginRight="12dp"
android:layout_marginLeft="12dp"
xmlns:android="http://schemas.android.com/apk/res/android"
app:cardElevation="4dp"
app:cardCornerRadius="0dp"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:fillViewport="true"
android:scrollbars="none"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/txtD"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textStyle="bold"
android:layout_alignParentStart="true"
android:layout_marginTop="160dp"/>
</RelativeLayout>
</ScrollView>
</android.support.v7.widget.CardView>
activity detail
public class Activity_Detalle extends AppCompatActivity {
public final static String ID = "ID";
//public items
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity__detalle);
Toolbar toolbar= (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("");
//nombres=T_Fisica.getItem(getIntent().getIntExtra(ID,0));
getWindow().setEnterTransition(TransitionInflater.from(this).inflateTransition(R.transition.shared_element));
String det="";
Bundle extra = getIntent().getExtras();
if (extra!=null){
det=extra.getString("DETALLE");
}
TextView txtD = (TextView)findViewById(R.id.txtD);
txtD.setText(det);
}
}
Recycler
public class T_FAdaptador extends
RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final int ITEM1 = 1;
private final int ITEM2 = 2;
private List<Materias> items = new ArrayList<>();
private static Context context;
static class Item1Holder extends RecyclerView.ViewHolder{
public final TextView nombre, text;
public final ImageView imagen;
public Item1Holder(View itemView) {
super(itemView);
nombre= (TextView)itemView.findViewById(R.id.textView90);
imagen=(ImageView)itemView.findViewById(imageView2);
text=(TextView)itemView.findViewById(R.id.textView91);
// det=(TextView)itemView.findViewById(R.id.txtD);
itemView.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,Activity_Detalle.class);
intent.putExtra("DETALLE", det.getText());
ActivityOptionsCompat option = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context, imagen, context.getString(R.string.image_transition));
context.startActivity(intent, option.toBundle());
((Activity) context).getWindow().setExitTransition(TransitionInflater.from(context).inflateTransition(R.transition.shared_element_exit));
}
});
}
static class Item2Holder extends RecyclerView.ViewHolder{
public final TextView nombre, text;
public final ImageView imagen;
public Item2Holder(View itemView) {
super(itemView);
nombre= (TextView)itemView.findViewById(R.id.textView90);
imagen=(ImageView)itemView.findViewById(imageView2);
text=(TextView)itemView.findViewById(R.id.textView91);
}
}}
public T_FAdaptador(Context context, List<Materias> items) {
this.context=context;
this.items = items;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
RecyclerView.ViewHolder viewHolder;
switch (viewType){
case ITEM1: viewHolder = new Item1Holder(inflater.inflate(R.layout.row_fisica,parent,false));
break;
case ITEM2: viewHolder = new Item1Holder.Item2Holder(inflater.inflate(R.layout.row_prueba,parent,false));
break;
default: viewHolder = new Item1Holder(inflater.inflate(R.layout.row_fisica,parent));
}
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)){
case ITEM1:
T_Fisica item1 = (T_Fisica) items.get(position);
Item1Holder item1Holder = (Item1Holder)holder;
item1Holder.nombre.setText(item1.getNombre_t());
item1Holder.text.setText(item1.getText_t());
item1Holder.imagen.setImageResource(item1.getimage_t());
//item1Holder.det.setText(item1.getText_d());
break;
case ITEM2:
T_Algebra item2 = (T_Algebra) items.get(position);
Item1Holder.Item2Holder item2Holder =
(Item1Holder.Item2Holder)holder;
item2Holder.nombre.setText(item2.getNombre_t());
item2Holder.text.setText(item2.getText_t());
item2Holder.imagen.setImageResource(item2.getimage_t());
break;
}
}
@Override
public int getItemViewType(int position) {
return items.get(position).getViewType();
}
@Override
public int getItemCount() {
return items.size();
}
}
and finally the activity where the Recycler is lodged
public class Fisica extends AppCompatActivity {
private RecyclerView reciclador;
private RecyclerView.LayoutManager lmanager;
private RecyclerView.Adapter adaptador;
private List<Materias> items = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fisica);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Movimientos");
getWindow().setEnterTransition(TransitionInflater.from(this).inflateTransition(R.transition.enter_activity));
//getWindow().setExitTransition(TransitionInflater.from(this).inflateTransition(R.transition.shared_element_exit));
items.add(new T_Fisica(R.drawable.mruymruvmenor, "MRU y MRUV", "El movimiento rectilíneo uniforme (m.r.u.) es aquel en el que la trayectoria es una línea recta y la velocidad es constante.El MRUV es aquel movimiento en que la velocidad varía uniformemente con el tiempo y, por lo tanto, la aceleración permanece constante.",getString(R.string.MruyMruv)));
items.add(new T_Fisica(R.drawable.clibreytverticalmenor, "Caida Libre y Tiro Vertical", "Se trata de un movimiento rectilíneo uniforme variado, también conocido como MRUV. En un tiro vertical, la velocidad cambia y existe una aceleración que está dada por la acción de la gravedad. El tiro vertical, cuya dirección puede ser descendente o ascendente, tiene una velocidad inicial que resulta diferente a cero.",getString(R.string.TVerticalyCLibre)));
items.add(new T_Fisica(R.drawable.tirooblicuomenor, "Tiro Oblicuo", "Resultado de imagen para definicion tiro oblicuo\n" +
"Tiro oblicuo. Se trata de una particularidad del \"Tiro parabólico\", por lo tanto es un “movimiento rectilíneo uniforme” en su desarrollo horizontal y un “movimiento uniformemente variado” en su desarrollo vertical. Pero, en el eje vertical se comporta como el movimiento de “Caída Libre”.",getString(R.string.TOblicuo)));
items.add(new T_Fisica(R.drawable.mcuymcuamenor, "MCU y MCUA", "MCU y MCUA son movimiento de un cuerpo por una trayectoria circular, tanto si te trata de un movimiento uniforme o uniformemente acelerado. Lo único que cambian son las formas de expresar el espacio, la velocidad y la aceleración.",getString(R.string.McuyMcuv)));
items.add(new T_Fisica(R.drawable.dinamicamenor, "Dinamica y Dinamica Del Circular", "La dinámica es la parte de la física que estudia la relación existente entre las fuerzas que actúan sobre un cuerpo y los efectos que se producirán sobre el movimiento de ese cuerpo.",getString(R.string.Dinamica)));
items.add(new T_Fisica(R.drawable.mgravitatoriomenor, "Movimiento Gravitatorio", "Estudia las fuerzas que infuyen en el movimientos de los planetas.",getString(R.string.MGravitatorio)));
items.add(new T_Fisica(R.drawable.fuerzaelasticamenor, "Fuerza Elastica", "La fuerza elástica es la ejercida por objetos tales como resortes, que tienen una posición normal, fuera de la cual almacenan energía potencial y ejercen fuerzas.",getString(R.string.FElastica)));
items.add(new T_Fisica(R.drawable.moamenor, "Movimiento Oscilatorio Armonico", "Se trata de un movimiento armónico simple. El movimiento oscilatorio es un movimiento en torno a un punto de equilibrio estable. Este puede ser simple o completo. Los puntos de equilibrio mecánico son, en general, aquellos en los cuales la fuerza neta que actúa sobre la partícula es cero.",getString(R.string.Mos)));
items.add(new T_Fisica(R.drawable.estaticamenor, "Estatica", "La estática es la rama de la mecánica clásica que analiza las cargas (fuerza, par / momento) y estudia el equilibrio de fuerzas en los sistemas físicos en equilibrio estático, es decir, en un estado en el que las posiciones relativas de los subsistemas no varían con el tiempo.",getString(R.string.Estatica)));
items.add(new T_Fisica(R.drawable.pendulosimplemenor, "Pendulo Simple", "Un péndulo simple se define como una partícula de masa m suspendida del punto O por un hilo inextensible de longitud l y de masa despreciable. Si la partícula se desplaza a una posición q0 (ángulo que hace el hilo con la vertical) y luego se suelta, el péndulo comienza a oscilar.",getString(R.string.PenduloSimple)));
items.add(new T_Fisica(R.drawable.hidrostaticamenor, "Hidrostatica", "Se describe como presión al acto y resultado de comprimir, estrujar o apretar; a la coacción que se puede ejercer sobre un sujeto o conjunto; o la magnitud física que permite expresar el poder o fuerza que se ejerce sobre un elemento o cuerpo en una cierta unidad de superficie.",getString(R.string.Hidrostatica)));
reciclador = (RecyclerView) findViewById(R.id.reciclador);
reciclador.setHasFixedSize(true);
lmanager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
reciclador.setLayoutManager(lmanager);
adaptador = new T_FAdaptador(this, items);
reciclador.setAdapter(adaptador);
}
}
Excuse me for being untidy if there is a lack of information, tell me that I edit the question, I would be very grateful if you help me achieve it.