This project extract data from ### CoinpapriKa
Their API documentation can be found Here
Link to get all listed coins as JSON array can be found here
Link to get all available details of a coins as JSON object can be found here
Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster.
Volley dependencies for Groovy
dependencies {
    implementation 'com.android.volley:volley:1.2.1'
}
public interface RecyclerViewClickListener {
    void onRecViewItemClick(int position);
}
public class CoinListAdapter extends RecyclerView.Adapter<CoinListAdapter.ViewHolder> {
    //array to hold coins
    private ArrayList<Coins> coinsArrayList = new ArrayList<>();
    //interface to recieve clicked coin
    private RecyclerViewClickListener recyclerViewClickListener;
    //constructor that recieve clicked listener interface as parameter 
    public CoinListAdapter(RecyclerViewClickListener recyclerViewClickListener) {
        this.recyclerViewClickListener = recyclerViewClickListener;
    }
    public CoinListAdapter() {
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return  new ViewHolder(View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.coin_list,parent,false));
    }
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        .
        .
        .
        //setting click listener to parent view
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //passing the clicked position to the interface
                recyclerViewClickListener.onRecViewItemClick(position);
            }
        });
    }
    @Override
    public int getItemCount() {
        return coinsArrayList.size();
    }
    //getting clicked data
    public Coins getItemData(int position) {
        return coinsArrayList.get(position);
    }
    //updating the data of the recView
    public void setAdapterData(ArrayList<Coins> coins) {
        this.coinsArrayList = coins;
        notifyDataSetChanged(); 
    }
    public static class  ViewHolder extends RecyclerView.ViewHolder{
        //view variable declaration
        public ViewHolder(@NonNull View itemView){  
            super(itemView);
            //views to variable mapping(findViewById)
            .
            .
        }
    }
}
``` public class MainActivity extends AppCompatActivity implements RecyclerViewClickListener { //implement to get clicked position private CoinListAdapter coinListAdapter; private RecyclerView coinRecView; . . .
private void setRecViewAdapter() {
    coinRecView = findViewById(R.id.recView_mainActivity);
    coinListAdapter = new CoinListAdapter(this);
    coinRecView.setAdapter(coinListAdapter);
    coinRecView.setLayoutManager(new LinearLayoutManager(this));
}
//implementation of the RecyclerViewClickListener
//it holds the current clicked position
@Override
public void onRecViewItemClick(int position) {
    // Handle item click event
    Coins clickedCoin = coinListAdapter.getItemData(position);
    Toast.makeText(this, "Clicked: " + clickedCoin.getName(), Toast.LENGTH_SHORT).show();
    Intent intent = new Intent(this, CoinDetailsActivity.class);
    intent.putExtra("position",String.valueOf(position+1));
    intent.putExtra("coin_id",clickedCoin.getCoin_id());
    startActivity(intent);
} }