rating bar
মাঝে মাঝে অ্যাপের ভিতর আমাদের রেটিং বারের প্রয়োজন হয় । আজকে আমরা দেখবো কিভাবে রেটিং বার নিয়ে কাজ করতে পারি ।
আমাদের ফাইনাল যে আউটপুট টা দেখাবে সেটা এরকম -
তো বরাবরের মত চলুন ডিজাইন শুরু করা যাক । আমরা প্রতিটি নতুন জিনিসই কিন্তু নতুন প্রোজেক্ট খুলে কাজ করছি ।
activity_main.xml - এখানে একটি রেটিং বার থাকবে এবং তার নিচে একটি টেক্সভিউ থাকবে যেখানে আমরা রেটিংবারের ভ্যালু টি দেখাবো ।
এই xml এ ডিজাইনে নতুন কিছু ট্যাগ দেখতে পাচ্ছেন যেগুলো নিয়ে আমরা আগে কখনো কাজ করি নাই । এগুলো হল -
numStars - রেটিংবারে কতটি স্টার দেখাবো তা এই ট্যাগের ভিতরে লিখে দিবো
rating - ইনিশিয়ালি রেটিংবার দেখানোর সময় যদি আগে থেকেই রেটিং এর কোন ভ্যালু ইউজারকে বাই ডিফল্ট দেখাতে চাই তবে তার মান এখানে লিখবো । আমরা এখানে ১ লিখে দিলাম । অ্যাপ রান করলেই বুঝে যাবেন ।
stepSize - ইউজার যখন ক্লিক এর মাধ্যমে রেটিং বাড়াবে তখন তার মান কত ধাপ করে বাড়বে তা এখানে লিখে দিবো। আপনি চাইলে 0.5 করেও বাড়াতে পারেন ।
progressBackgroundTint- সবগুলো রেটিংবারের যে কালার হবে সেটি এখানে ডিক্লার করে দিবো
progressTint - ইউজার যতটুকু রেটিং দিবে ততটুকু কালার করার জন্য এটি ব্যাবহার করা হয়
আর আমরা যে কালারগুলো ইউজ করেছি এগুলো অ্যান্ড্রোয়েড স্টুডিও এর ভিতরেই দেয়া আছে ।
তাহলে আবার MainActivity.java তে কোড করা যাক --
বরাবরের মত আমরা লেআউট ডিজাইনে যে সকল ভিউ গুলো ইউজ করেছি সেগুলোর অব্জেক্ট তৈরি করে তার সাথে লেআউট এর ভিউগুলোর আইডির সাথে যোগ করে দিলাম ।
এরপর রেটিং বারের জন্য যেটি ব্যাবহার করতে হয় সেটি হল setOnRatingBarChangeListener । এখানে ratingBar এর পর ডট দিলেই setOnRatingBarChangeListener চলে আসবে । এরপর () এর ভিতর new লিখে On লিখলেই দেখবেন সাজেশন দেখাচ্ছে , Enter প্রেস করলেই বাকিটা অটোমেটিক চলে আসবে ।
এখন setOnRatingBarChangeListener এর ভিতরে থাকা ম্যাথডের ভিতরে জাস্ট টেক্সভিউ এর অব্জেক্ট textView এর সাথে setText() ম্যাথডের মাধ্যমে ভ্যালু টা দেখিয়ে দিলাম । এখানে অবশ্যই কিছু একটা String ভ্যালু সাথে দিয়ে দিতে হবে যেমন এখানে আমরা "value" দিয়ে দিয়েছি ।
এবার অ্যাপটা রান করুন 😊😊😊
আমাদের ফাইনাল যে আউটপুট টা দেখাবে সেটা এরকম -
তো বরাবরের মত চলুন ডিজাইন শুরু করা যাক । আমরা প্রতিটি নতুন জিনিসই কিন্তু নতুন প্রোজেক্ট খুলে কাজ করছি ।
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" দিয়ে দিয়েছি ।
এবার অ্যাপটা রান করুন 😊😊😊
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন