آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

در این مبحث قصد داریم که یک برنامه اندروید بسازیم که نظر کاربران را بر اساس تعداد ستاره، دریافت کرده و نمایش می دهد. برای این منظور، از عنصر RatingBar استفاده خواهیم کرد :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید
دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

هنگام انتخاب یک رتبه (تعداد ستاره) توسط کاربر، عدد مربوط به انتخاب کاربر در یک TextView نمایش داده می شود، علاوه بر این، یک Button تعریف خواهیم کرد که وقتی بر روی آن اشاره می کنیم، انتخاب کاربر، به صورت یک پیام کوتاه، نمایش داده می شود (با استفاده از روش Toast.makeText).

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام RatingBar می سازیم (نام package را برابر com.kelidestan.ratingbar انتخاب می کنیم. نام Activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم) :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

در فایل activity_main.xml ، کدهای زیر را می نویسیم :


<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="Rate Me"
        android:textAppearance="?android:attr/textAppearanceMedium" />
 
    <RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:stepSize="1.0"
        android:rating="0.0" />
 
    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit" />
 
    <LinearLayout
        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="Result : "
            android:textAppearance="?android:attr/textAppearanceLarge" />
 
        <TextView
            android:id="@+id/txtRatingValue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceSmall" />
 
    </LinearLayout>
   
</LinearLayout>

دقت شود که تعداد ستاره هایی که می خواهیم برای عنصر RatingBar نمایش داده شود را باید در مشخصه numStars از RatingBar تعیین کنیم :


android:numStars="5"

همچنین رتبه ای (تعداد ستاره) که در ابتدا به صورت پیش فرض به کاربر نمایش داده می شود، توسط مشخصه rating تعیین می شود :


android:rating="0.0"

بنابراین شکل گرافیکی فایل activity_main.xml به صورت زیر خواهد بود :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

اکنون کدهای فایل MainActivity.java را به صورت زیر می نویسیم :


package com.kelidestan.ratingbar;

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

public class MainActivity extends Activity {
       
        public RatingBar ratingBar;
        public TextView txtRatingValue;
        public Button btnSubmit;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                addListenerOnRatingBar();
                addListenerOnButton();
        }

   
        public void addListenerOnRatingBar() {
                 
                ratingBar = (RatingBar) findViewById(R.id.ratingBar);
                txtRatingValue = (TextView) findViewById(R.id.txtRatingValue);
         
                //if rating value is changed,
                //display the current rating value in the result (textview) automatically
                ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
                        public void onRatingChanged(RatingBar ratingBar, float rating,
                                boolean fromUser) {
         
                                txtRatingValue.setText(String.valueOf(rating));
         
                        }
                });
          }
         
          public void addListenerOnButton() {
         
                ratingBar = (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(MainActivity.this,
                                                       String.valueOf(ratingBar.getRating()),
                                                       Toast.LENGTH_SHORT).show();
         
                        }
         
                });
         
          }

}

پروژه اندروید آماده است و می توانید آن را به روش دلخواه خود امتحان کنید. من آن را بر روی یک گوشی اندروید نصب می کنم. ابتدا صفحه زیر نمایش داده می شود :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

چون تعداد ستاره ها را به صورت پیش فرض، برابر 0 انتخاب کردیم، بنابراین هیچ ستاره ای در RatingBar به صورت رنگی نمایش داده نشده است. اکنون بر روی ستاره دوم اشاره می کنیم :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

مشاهده می کنید که دو ستاره رنگی شده است و در TextView ، مقدار 2 نمایش داده شده است. اکنون بر روی Button کلیک می کنیم :

دریافت نظر کاربران بر اساس تعداد ستاره، با استفاده از عنصر RatingBar ، در برنامه نویسی اندروید

یک پیام کوتاه که دارای عنوان 2.0 است، به مدت چند ثانیه، نمایش داده می شود.

فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :