RatingBar   یا امتیاز دهی در اندروید

منتشرشده توسط حامد قنبری در تاریخ

در آندروید، شما می توانید  از ویجت.RatingBar  برای نمایش نوار امتیاز که بصورت نماد ستاره دار نشان داده می شود استفاده کنید. ویجتی که کاربر می تواند با لمس، کشیدن و یا کلیک بر روی ستاره ها به راحتی نسبت به کارهای مورد عرضه شما امتیاز داده و ارزش رتبه ای آن را تغییر دهد.در این آموزش، ما به شما نشان می دهیم که چگونه می توانید از یک نوار رتبه بندیف برای امتیازگیری و رتبه بندی استفاده کنید. در این مثال هنگامی که کاربر بر روی نوار رتبه بندی ستاره دار کلیک می کند، امتیاز تخصیص داده شده در ویو متن نمایش داده می شود. و همچنین اگر کاربر بر روی دکمه کلیک کند، ارزش رتبه انتخاب شده او به عنوان یک پیام شناور در Toast نمایش داده می شود.

به منظور درک بهتر موضوع ابتدا مثالی برای دوستان عزیز ارایه می کنیم و سپس به توضیح سورس ها خواهیم پرداخت:

اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید. بعد از لود کامل برنامه ، در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/lblRateMe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="امتیازهای من"
        android:layout_gravity="center"
        android:gravity="center" />

    <RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="4"
        android:layout_gravity="center"
        android:stepSize="1.0"
        android:rating="2.0" />

    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="مشاهده نتیجه" />

    <RelativeLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >


        <TextView
            android:id="@+id/lblResult"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="نتیجه : "
            android:layout_gravity="right"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />
        />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/txtRatingValue"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:hint="نتیجه امتیاز شما"
            android:text=""
            android:textSize="20sp" />
    </RelativeLayout>

</LinearLayout>

 

سپس به سراغ کلاس اصلی پروژه رفته و کدهای زیر به ان اضافه می کنیم:

package com.example.psrd.sheidayi;


import android.widget.TextView;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;

public class MainActivity extends Activity {

    private RatingBar rating;
    private TextView valuetextrating;
    private Button btnSubmit;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listenerrating();
        listenerbuttons();

    }

    public void listenerrating() {

        rating = (RatingBar) findViewById(R.id.ratingBar);
        valuetextrating = (TextView) findViewById(R.id.txtRatingValue);

        //if rating value is changed,
        //display the current rating value in the result (textview) automatically
        rating.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
            public void onRatingChanged(RatingBar ratingBar, float rating,
                                        boolean fromUser) {

                valuetextrating.setText(String.valueOf(rating));

            }
        });
    }

    public void listenerbuttons() {

        rating = (RatingBar) findViewById(R.id.ratingBar);
        btnSubmit = (Button) findViewById(R.id.btnSubmit);

        //if click on me, then display the current rating value.
        btnSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Toast.makeText(getApplicationContext(), String.valueOf(rating.getRating()), Toast.LENGTH_SHORT).show();

            }

        });

    }
}

 

 

حال می توانید پروژه خود را اجرا کرده و نتیجه کار خود را ببینید.

 


0 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --