rating bar

মাঝে মাঝে অ্যাপের ভিতর আমাদের রেটিং বারের প্রয়োজন হয় । আজকে আমরা দেখবো কিভাবে রেটিং বার নিয়ে কাজ করতে পারি ।

আমাদের ফাইনাল যে আউটপুট টা দেখাবে সেটা এরকম -



তো বরাবরের মত চলুন ডিজাইন শুরু করা যাক । আমরা প্রতিটি নতুন জিনিসই কিন্তু নতুন প্রোজেক্ট খুলে কাজ করছি ।

activity_main.xml -  এখানে একটি রেটিং বার থাকবে এবং তার নিচে একটি টেক্সভিউ থাকবে যেখানে আমরা রেটিংবারের ভ্যালু টি দেখাবো ।

 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout  
   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"  
   android:orientation="vertical"  
   tools:context="com.example.user.learnfromyoutube.MainActivity">  
   <RatingBar  
     android:id="@+id/ratingBar"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:numStars="6"  
     android:rating="1"  
     android:stepSize="1"  
     android:layout_gravity="center_horizontal"  
     android:progressBackgroundTint="@android:color/holo_blue_light"  
     android:progressTint="@android:color/holo_green_dark"/>  
   <TextView  
     android:id="@+id/textView"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:textSize="25sp"  
     android:textStyle="bold"  
     android:layout_gravity="center_horizontal"  
     android:layout_marginTop="10dp"/>  
 </LinearLayout>  

এই xml এ ডিজাইনে নতুন কিছু ট্যাগ দেখতে পাচ্ছেন যেগুলো নিয়ে আমরা আগে কখনো কাজ করি নাই । এগুলো হল -

numStars - রেটিংবারে কতটি স্টার দেখাবো তা এই ট্যাগের ভিতরে লিখে দিবো

rating - ইনিশিয়ালি রেটিংবার দেখানোর সময় যদি আগে থেকেই রেটিং এর কোন ভ্যালু ইউজারকে বাই ডিফল্ট দেখাতে চাই তবে তার মান এখানে লিখবো । আমরা এখানে ১ লিখে দিলাম । অ্যাপ রান করলেই বুঝে যাবেন ।

stepSize - ইউজার যখন ক্লিক এর মাধ্যমে রেটিং বাড়াবে তখন তার মান কত ধাপ করে বাড়বে তা এখানে লিখে দিবো। আপনি চাইলে  0.5 করেও বাড়াতে পারেন ।

progressBackgroundTint- সবগুলো রেটিংবারের যে কালার হবে সেটি এখানে ডিক্লার করে দিবো

progressTint - ইউজার যতটুকু রেটিং দিবে ততটুকু কালার করার জন্য এটি ব্যাবহার করা হয়

আর আমরা যে কালারগুলো ইউজ করেছি এগুলো অ্যান্ড্রোয়েড স্টুডিও এর ভিতরেই দেয়া আছে ।

তাহলে আবার MainActivity.java তে কোড করা যাক --

 package com.example.user.learnfromyoutube;  
 import android.support.v7.app.AppCompatActivity;  
 import android.os.Bundle;  
 import android.util.Log;  
 import android.view.Gravity;  
 import android.view.LayoutInflater;  
 import android.view.View;  
 import android.view.ViewGroup;  
 import android.widget.RadioButton;  
 import android.widget.RadioGroup;  
 import android.widget.RatingBar;  
 import android.widget.TextView;  
 import android.widget.Toast;  
 public class MainActivity extends AppCompatActivity {  
    private RatingBar ratingBar;  
    private TextView textView;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     ratingBar = findViewById(R.id.ratingBar);  
     textView = findViewById(R.id.textView);  
     ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {  
       @Override  
       public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {  
         textView.setText("value "+v);  
       }  
     });  
   }  
 }  

বরাবরের মত আমরা লেআউট ডিজাইনে যে সকল ভিউ গুলো ইউজ করেছি সেগুলোর অব্জেক্ট তৈরি করে তার সাথে লেআউট এর ভিউগুলোর আইডির সাথে যোগ করে দিলাম ।

এরপর রেটিং বারের জন্য যেটি ব্যাবহার করতে হয় সেটি হল setOnRatingBarChangeListener ।  এখানে ratingBar এর পর ডট দিলেই setOnRatingBarChangeListener চলে আসবে । এরপর () এর ভিতর new লিখে On লিখলেই দেখবেন সাজেশন দেখাচ্ছে , Enter প্রেস করলেই বাকিটা অটোমেটিক চলে আসবে ।

এখন setOnRatingBarChangeListener এর ভিতরে থাকা ম্যাথডের ভিতরে জাস্ট টেক্সভিউ এর অব্জেক্ট textView এর সাথে setText() ম্যাথডের মাধ্যমে ভ্যালু টা দেখিয়ে দিলাম । এখানে অবশ্যই কিছু একটা String ভ্যালু সাথে দিয়ে দিতে হবে যেমন এখানে আমরা "value" দিয়ে দিয়েছি ।

এবার অ্যাপটা রান করুন 😊😊😊

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

Spinner View - 11 ( Android Bangla Tutorial)

ImageView ( Android Bangla Tutorial - )

Toggle Button - 10 ( Android Bangla Tutorial)