public class Grocery {
public int productImage;
public String productName;
public Grocery(String productName, int productImage) {
this.productImage = productImage;
this.productName = productName;
}
public int getProductImage() {
return productImage;
}
public void setProductImage(int productImage) {
this.productImage = productImage;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
}
//
public class MainActivity extends AppCompatActivity {
private List<Grocery> groceryList = new ArrayList<>();
private RecyclerView groceryRecyclerView;
private RecyclerViewHorizontalListAdapter groceryAdapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
groceryRecyclerView = (RecyclerView) findViewById(R.id.idRecyclerViewHorizontalList);
// add a divider after each item for more clarity groceryRecyclerView.addItemDecoration(new DividerItemDecoration(MainActivity.this, LinearLayoutManager.HORIZONTAL));
groceryAdapter = new RecyclerViewHorizontalListAdapter(groceryList, getApplicationContext());
LinearLayoutManager horizontalLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false);
groceryRecyclerView.setLayoutManager(horizontalLayoutManager);
groceryRecyclerView.setAdapter(groceryAdapter);
populategroceryList();
}
private void populategroceryList(){
Grocery potato = new Grocery("Potato", R.drawable.potato);
Grocery onion = new Grocery("Onion", R.drawable.potato);
Grocery cabbage = new Grocery("Cabbage", R.drawable.potato);
Grocery cauliflower = new Grocery("Cauliflower", R.drawable.potato);
groceryList.add(potato);
groceryList.add(onion);
groceryList.add(cabbage);
groceryList.add(cauliflower);
groceryAdapter.notifyDataSetChanged();
}
}
///
public class RecyclerViewHorizontalListAdapter extends RecyclerView.Adapter<RecyclerViewHorizontalListAdapter.GroceryViewHolder>{
private List<Grocery> horizontalGrocderyList;
Context context;
public RecyclerViewHorizontalListAdapter(List<Grocery> horizontalGrocderyList, Context context){
this.horizontalGrocderyList= horizontalGrocderyList;
this.context = context;
}
@Override public GroceryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//inflate the layout file View groceryProductView = LayoutInflater.from(parent.getContext()).inflate(R.layout.horizontal_list_grocery_item, parent, false);
GroceryViewHolder gvh = new GroceryViewHolder(groceryProductView);
return gvh;
}
@Override public void onBindViewHolder(GroceryViewHolder holder, final int position) {
holder.imageView.setImageResource(horizontalGrocderyList.get(position).getProductImage());
holder.txtview.setText(horizontalGrocderyList.get(position).getProductName());
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
//On click goes here String productName = horizontalGrocderyList.get(position).getProductName().toString();
Toast.makeText(context, productName + " is selected", Toast.LENGTH_SHORT).show();
}
});
}
@Override public int getItemCount() {
return horizontalGrocderyList.size();
}
public class GroceryViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView txtview;
public GroceryViewHolder(View view) {
super(view);
imageView=view.findViewById(R.id.idProductImage);
txtview=view.findViewById(R.id.idProductName);
}
}
}
//layout
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="np.com.sitalmandal.horzontiallayout.MainActivity">
<LinearLayout android:layout_width="match_parent" android:layout_height="75dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginStart="0dp" android:layout_marginLeft="0dp" android:layout_marginTop="166dp">
<android.support.v7.widget.RecyclerView android:id="@+id/idRecyclerViewHorizontalList" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="true" android:clipToPadding="true" android:scrollbars="horizontal" />
</LinearLayout>
</RelativeLayout>
// horizontal_list_grocery_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@+id/idProductImage" android:layout_width="50dp" android:layout_height="50dp"/>
<TextView android:id="@+id/idProductName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp"/>
</LinearLayout>
//compile 'com.android.support:recyclerview-v7:+'
https://iteritory.com/android-recyclerview-horizontal-list-tutorial/
Comments
Post a Comment