So erhalten Sie Artikel vom RecyclerView-Adapter in Android

Lesezeit: 3 Minuten

Benutzer-Avatar
Raffael

Im alten Code, als ich benutzte ListView Mit benutzerdefiniertem Adapter könnte ich Artikel mit diesem Code erhalten.

Message msg = (Message) adapter.getItem(poistion);

Jetzt setze ich um RecyclerView. Wie kann ich Artikel von bekommen RecyclerView.adapter?

Du musst es selbst umsetzen.

Fügen Sie Ihrem benutzerdefinierten Adapter eine neue Methode hinzu, und Sie sind fertig.

public Message getItem(int position) {
  return messageList.get(position);
}

  • Ja natürlich… aber um zu haben Message Objekt als Rückgabewert müssen Sie die Liste der Elemente als festlegen List<Message> mItems; in deinem Adapter.

    – Davideas

    5. Mai 2015 um 12:44 Uhr


Benutzer-Avatar
Wolodymyr Kret

Ich denke, der richtige Weg getItem() ist durch RecyclerView LayoutManager.

View v = recyclerView.getLayoutManager().findViewByPosition(position);

  • So erhalten Sie die Ansicht, nicht die Daten, die die Ansicht unterstützen.

    – Bryan Bryce

    10. März 2016 um 16:51 Uhr

  • @PhoenixFF stimmt, aber wenn Sie EditTexts als Elemente haben, ist dies die beste Methode, um ihren Wert zu erhalten (nachdem er vom Benutzer geändert wurde)! 🙂

    – Willi Mentzel

    8. August 2016 um 20:00 Uhr

  • Wie Sie diese Stelle bekommen

    – Qohat Pretel Polo

    10. August 2017 um 20:22 Uhr

  • Wie bekommt man die Daten aus der Ansicht? (angenommen, es hat eine TextView namens ‘tv’)

    – John Ktejik

    10. Oktober 2018 um 18:09 Uhr

  • @johnktejik Wenn Sie die Ansicht mit der obigen Methode erhalten, können Sie jedes Ansichtsattribut wie view.textView.gettext () abrufen.

    – Vikas

    20. Oktober 2021 um 15:37 Uhr


Benutzer-Avatar
saurabh mishra

Onclicklistener hat es geschafft

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;
        }
    }
}

In der Recyclingansicht können Sie Artikel vom RecyclerView-Adapter abrufen, indem Sie den folgenden Code verwenden.

RecyclerView rv_list_frames;

public frames getItem(int position) {
  return rv_list_frames.get(position);
}

Ich wünschte, oben kann Ihnen helfen, Gegenstände zu bekommen.

Benutzer-Avatar
Utsav Kundu

@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);

}

  • Was in aller Welt?

    – Brayan Loayza

    27. November 2019 um 22:38 Uhr

  • Was in aller Welt?

    – Brayan Loayza

    27. November 2019 um 22:38 Uhr

1228760cookie-checkSo erhalten Sie Artikel vom RecyclerView-Adapter in Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy