Cómo obtener el elemento del adaptador RecyclerView en Android
En el código antiguo cuando estaba usando ListView con adaptador personalizado podría obtener el elemento con este código.
Message msg = (Message) adapter.getItem(poistion);
Ahora estoy implementando RecyclerView. ¿Cómo puedo obtener el elemento del adaptador RecyclerView?
- RecyclerView con columna fija y cabecera, además de pie de página desplazable
- Google Play Store como interfaz utilizando la vista de reciclador
- Cómo cambiar el diseño del elemento recyclerview desde fuera?
- Twowayview agrega automáticamente relleno al desplazarse
- La barra de desplazamiento de RecyclerView salta de nuevo al principio después del primer elemento
- Android - Cómo detener la recarga de imágenes en Recyclerview al desplazarse
- RecyclerView LayoutManager findViewByPosition devuelve null
- RecyclerView Deslice con una vista inferior y no detecte clic
- Crear menú de opciones para RecyclerView-Item
- Obtener elementos visibles en RecyclerView
- ¿Cuál es el punto de usar decoraciones de artículos en RecyclerView VS edición de los diseños inflados individuales?
- RecyclerView y java.lang.IndexOutOfBoundsException: Inconsistencia detectada. Posicionador de visor no válido PositionViewHolder en dispositivos Samsung
- RecyclerVer el número de elementos visibles
Tienes que implementarlo tú mismo.
Agregue un nuevo método en su adaptador personalizado y ya está.
public Message getItem(int position) { return messageList.get(position); }
Creo que la forma correcta de getItem es a través de RecyclerView LayoutManager.
View v = recyclerView.getLayoutManager().findViewByPosition(position);
Onclicklistener hizo el truco
public class MainActivity extends AppCompatActivity { Context context; RecyclerView recyclerView; RelativeLayout relativeLayout; RecyclerView.Adapter recyclerviewAdapter; RecyclerView.LayoutManager recyclerViewLayoutManager; String[] numbers = { "ANDROID", "PHP", "BLOGGER", "WORDPRESS", "JOOMLA", "ASP.NET", "JAVA", "C++", "MATHS", "HINDI", "ENGLISH"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = getApplicationContext(); relativeLayout = (RelativeLayout)findViewById(R.id.relativelayout1); recyclerView = (RecyclerView)findViewById(R.id.recyclerview1); recyclerViewLayoutManager = new LinearLayoutManager(context); recyclerView.setLayoutManager(recyclerViewLayoutManager); recyclerviewAdapter = new RecyclerViewAdapter(context,numbers); recyclerView.setAdapter(recyclerviewAdapter); } public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { String[] numvalues; Context context; View view1; ViewHolder viewHolder1; TextView textView; public RecyclerViewAdapter(Context context1,String[] numvalues1){ numvalues = numvalues1; context = context1; } public class ViewHolder extends RecyclerView.ViewHolder{ public TextView textView; public ViewHolder(View v){ super(v); textView = (TextView)v.findViewById(R.id.number_textview); } } @Override public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { view1 = LayoutInflater.from(context).inflate(R.layout.recyclerview_items,parent,false); // view1.setOnClickListener(new MyOnClickListener()); view1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int itemPosition = recyclerView.indexOfChild(v); // Toast.makeText(MainActivity.this,"Selected item position is---"+ itemPosition,Toast.LENGTH_SHORT).show(); textView = (TextView)v.findViewById(R.id.number_textview); Toast.makeText(MainActivity.this,"Selected val of clicked position is---"+ textView.getText().toString(),Toast.LENGTH_SHORT).show(); } }); viewHolder1 = new ViewHolder(view1); return viewHolder1; } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.textView.setText(numvalues[position]); } @Override public int getItemCount() { return numvalues.length; } } }
En recycleview puede obtener elementos del adaptador de RecyclerView utilizando código inferior,
RecyclerView rv_list_frames; public frames getItem(int position) { return rv_list_frames.get(position); }
Deseo arriba que puede ayudarle para conseguir artículos.
@Override public void onClick(View view, int position) { System.out.println("cardetail_activity"+position); Intent i = new Intent(getActivity(), CarDetail.class); ListingDataprovider data_provider=arrayList.get(position); i.putExtra("ID",data_provider.getId()); getActivity().startActivity(i); }
- Android: espera en la entrada del usuario desde el diálogo?
- Conexiones de socket y Polling. ¿Cuál es la mejor solución en términos de duración de la batería?