RatingBar ব্যবহার করে স্টার রেটিং সিস্টেম বানানো
এই উদাহরণে অ্যান্ড্রয়েডের বিল্ট-ইন RatingBar উইজেট ব্যবহার করে একটি সাধারণ রেটিং সিস্টেম তৈরি করা হয়েছে।
প্রথম ধাপ: প্রজেক্ট তৈরি করুন
Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।
দ্বিতীয় ধাপ: লেআউট ফাইল
res/layout/activity_main.xml - একটি RatingBar এবং একটি চেক বাটন:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16sp"
tools:context=".MainActivity">
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="2.0"
android:stepSize="1.0"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:id="@+id/ratingBar"/>
<Button
android:text="CHECK"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ratingBar"
android:layout_centerHorizontal="true"
android:id="@+id/buttonCheck"/>
</RelativeLayout>
তৃতীয় ধাপ: মেইন এক্টিভিটিতে রেটিংবার লজিক
src/MainActivity.java - লিসেনার যোগ করে রেটিং পরিবর্তন এবং বাটন ক্লিকে মান পড়া:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
RatingBar ratingBar;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = findViewById(R.id.ratingBar);
ratingBar.setNumStars(5); // কোড থেকেও সেট করা যায়
button = findViewById(R.id.buttonCheck);
// রেটিং পরিবর্তন হলে রিয়েল-টাইম টোস্ট
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(MainActivity.this, "Stars: " + (int)rating, Toast.LENGTH_SHORT).show();
}
});
// চেক বাটন ক্লিক করলে বর্তমান রেটিং দেখানো
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Stars: " + (int)ratingBar.getRating(), Toast.LENGTH_SHORT).show();
}
});
}
}
চতুর্থ ধাপ: ম্যানিফেস্ট ফাইল
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
RatingBar এর গুরুত্বপূর্ণ এট্রিবিউটসমূহ
android:numStars- মোট কতগুলো তারকা দেখাবে (ডিফল্ট ৫)android:rating- ডিফল্ট রেটিং মান (ফ্লোট)android:stepSize- কতটুকু ধাপে রেটিং বাড়বে (০.৫ = অর্ধেক তারকা, ১.০ = পূর্ণ তারকা)android:isIndicator- true হলে ইউজার রেটিং দিতে পারবে না (শুধু দেখাবে)
কাস্টম স্টাইল (ঐচ্ছিক)
styles.xml-এ কাস্টম স্টাইল ডিফাইন করে তারকার ছবি, রঙ ইত্যাদি পরিবর্তন করা যায়:
<style name="CustomRatingBar" parent="Widget.AppCompat.RatingBar">
<item name="android:progressDrawable">@drawable/custom_rating_stars</item>
<item name="android:minHeight">48dp</item>
<item name="android:maxHeight">48dp</item>
</style>
অ্যাপ্লিকেশন চালান
তারকাগুলো টাচ করলে রেটিং পরিবর্তন হবে এবং টোস্ট দেখাবে। "CHECK" বাটনে ক্লিক করলেও বর্তমান রেটিং দেখাবে।
