Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android

call getter method in adapter class

I've built a recyclerview, which displays a list of some data. Now i want to commit the data of the clicked list element to a new detail activity via intent.putExtra.

I don't know how to call my getter methods of my data for each list element in the onClick event of the adapter class.

Here is my adapter code:

public class BarsItemAdapter extends RecyclerView.Adapter<BarsItemAdapter.ListItemViewHolder> {

    private ArrayList<BarsItem> listData;

    private static Context sContext;

    public static class ListItemViewHolder extends RecyclerView.ViewHolder
            implements OnClickListener  {
        public TextView nameView;
        public TextView adresseView;
        public TextView typView;
        public TextView bewertungView;


        public ListItemViewHolder (View itemView){
            super(itemView);
            nameView = (TextView) itemView.findViewById(R.id.name);
            adresseView = (TextView) itemView.findViewById(R.id.adresse);
            typView = (TextView) itemView.findViewById(R.id.typ);
            bewertungView = (TextView) itemView.findViewById(R.id.bewertung);
            itemView.setOnClickListener(this);
        } // end constructor

        @Override
        public void onClick (View v) {
            Intent intent = new Intent(sContext,ActivityDetail.class);
            // HERE I WANT TO COMMIT MY DATA
            sContext.startActivity(intent);
        }

    } // end class ListItemViewHolder

    public BarsItemAdapter(ArrayList<BarsItem> list) {
        this.listData = list;
    }

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

    @Override
    public void onBindViewHolder(ListItemViewHolder holder, int position) {
        BarsItem ni = listData.get(position);
        holder.nameView.setText(ni.getName());
        holder.adresseView.setText(ni.getAdresse());
        holder.typView.setText(ni.getTyp());
        holder.bewertungView.setText(ni.getBewertung());
    } // end onBind

    @Override
    public ListItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_row_layout, parent, false);
        itemView.setPadding(10,5,10,5); // left top right bottom
        sContext = parent.getContext();
        return new ListItemViewHolder(itemView);
    } // end onCreate

}

The getter and setter methods are in a external file named "BarsItem.java"

Thanks for your help!