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