Rating Bar in Android Example

4
Ý ‡†ó£Œ´ÜŠO «èê¡à¼õ£‚° õ «î¬õò£ù ðô 衆«ó£™è¬÷ªè£‡ ´œ÷¶.  ðò¡ð´ˆ ¶‹ SDK-‚° ãŸð 衆 «ó£™èÀ‹ ñ£Áð´‹. ºî™ ꣡ø£è Rating Bar ðò¡ð´ˆ¶õ¶ âš õ£Á â¡ð¬îŠ 𣘊 «ð£‹. ºîL™ ݇† 󣌴 ÜŠO«èê¡ à¼ õ£‚°õ â‚OŠC™ ¹Fò Šó£ªü‚† å¡ P¬ù ªî£ìƒè «õ‡ ´‹. <?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="@string/rate" android:textAppearance="?android:attr/textA ppearanceMedium" /> <RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="4" android:stepSize="1.0" android:rating="2.0" /> <Button android:id="@+id/btnSubmit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/submit" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/lblResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/result" android:textAppearance="?android:attr/textApp earanceLarge" /> <TextView android:id="@+id/txtRatingValue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textAppearance="?android:attr/textApp earanceSmall" /> </LinearLayout> </LinearLayout> Rating Bar Palette-™ àœ÷ ç𣘋 M†ªü†®™ (Form Widget) Þ¼‚°‹. (ðì‹-1) ÜŠO«èêQ™ àœ÷ main.xml-™ ªì‚v† MÎ, «ó†®ƒ 𣘠ð†ì¬ù ªè£‡´ F¬óJ¬ù à¼õ£‚è «õ‡´‹. main.xml -‚è£ù Gó™ -1™ ªè£´‚èŠð†´œ÷¶. ðì‹-2 Gó™-1 ðì‹-3 ðì‹-1 «ó†®ƒ 𣘠ðò¡ð´ˆ¶‹ º¬ø!

description

Dr. Ramkumar Lakshminarayanan article published in Tamil Computer Magazine. The content is about using rating bar in android.

Transcript of Rating Bar in Android Example

Page 1: Rating Bar in Android Example

݇†ó£Œ´ ÜŠO«èê¡ à¼õ£‚°

õ «î¬õò£ù ðô衆«ó£™è¬÷ ªè£‡´œ÷¶.  ðò¡ð´ˆ¶‹ SDK-‚° ãŸð 衆«ó£™èÀ‹ ñ£Áð´‹.ºî™ ꣡ø£è RatingBarðò¡ð´ˆ¶õ¶ âšõ£Á â¡ð¬îŠ 𣘊«ð£‹. ºîL™ ݇†ó£Œ´ ÜŠO«èê¡ à¼õ£‚°õ â‚OŠC™¹Fò Šó£ªü‚† å¡P¬ù ªî£ìƒè «õ‡´‹.

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns: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="@string/rate"

android:textAppearance="?android:attr/textAppearanceMedium" /> <RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="4" android:stepSize="1.0" android:rating="2.0" /> <Button android:id="@+id/btnSubmit" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="@string/submit" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/lblResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/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>

Rating Bar Palette-™ àœ÷ ç𣘋M†ªü†®™ (Form Widget) Þ¼‚°‹. (ðì‹-1)ÜŠO«èêQ™ àœ÷ main.xml-™ ªì‚v†MÎ, «ó†®ƒ 𣘠ð†ì¬ù ªè£‡´F¬óJ¬ù à¼õ£‚è «õ‡´‹. main.xml-‚è£ù Gó™ -1™ ªè£´‚èŠð†´œ÷¶.ðì‹-2

Gó™-1

ðì‹-3

ðì‹-1

«ó†®ƒ ð£˜ðò¡ð´ˆ¶‹º¬ø!

Page 2: Rating Bar in Android Example

ðò¡ð´ˆ¶‹ Ý¡†ó£Œ´ -2

Þ󣋰ñ£˜ ªô†²Iï£ó£òí¡

16

public class RatingbarActivity extends Activity{ /** Called when the activity is firstcreated. */

private RatingBar ratingBar; private TextView txtRatingValue; private Button btnSubmit; @Override public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.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 theresult (textview) automatically

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { public voidonRatingChanged(RatingBar ratingBar, floatrating, 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 currentrating value. btnSubmit.setOnClickListener(newOnClickListener() {

@Override public void onClick(View v) {

Toast.makeText(RatingbarActivity.this,

String.valueOf(ratingBar.getRating()),

Toast.LENGTH_SHORT).show();

}

});

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;importandroid.widget.RatingBar.OnRatingBarChangeListener;import android.widget.TextView;import android.widget.Toast;

Gó™-2

Gó™-3

Gó™-4

Gó™-5

ðì‹-4

ðì‹-5

Gó™ -1™ 𣘈b˜èœâ¡ø£™ âˆî¬ù«ó†®ƒ 𣘠«õ‡´‹â¡ðî¬ù»‹ Step sizeñŸÁ‹ rating â¡ù â¡ðî¬ù °PŠH†´œ«÷£‹. main.xml-‚è£ùF¬ó ðì‹-2™ àœ÷¶«ð£¡Á‹ «î£¡Á‹.Ü´ˆ¶ main.xml -‚è£ùÝ‚®M†®J¬ù Ratingbar Activity.javaâù ªðòKìŠð†´œ÷¶.

ºîL™ ÜŠO«èê¡«î¬õò£ù «ð‚«èxè¬÷ Import ªêŒò«õ‡´‹. (Gó™-2).Ratingbar Activity Class ActivityClass -ä Extend ªêŒ¶

Page 3: Rating Bar in Android Example

package com.ram.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;importandroid.widget.RatingBar.OnRatingBarChangeListener;import android.widget.TextView;import android.widget.Toast;

public class RatingbarActivity extends Activity{ /** Called when the activity is first created.*/

private RatingBar ratingBar; private TextView txtRatingValue; private Button btnSubmit; @Override public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.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 theresult (textview) automatically

ratingBar.setOnRatingBarChangeListener(newOnRatingBarChangeListener() { public void onRatingChanged(RatingBarratingBar, 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 currentrating value. btnSubmit.setOnClickListener(newOnClickListener() {

@Override public void onClick(View v) {

Toast.makeText(RatingbarActivity.this,

String.valueOf(ratingBar.getRating()),

Toast.LENGTH_SHORT).show();

}

});

}}

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

<ProgressBar android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

</LinearLayout>

Gó™-6

Gó™-7

ðì‹-6

ðò¡ð´ˆî «õ‡´‹. GóL™ ðò¡ð´ˆî«ó†®ƒ 𣘂° ÝŠªü‚† ñ£PLò£è«ó†®ƒ 𣘠â¡Á‹, ªì‚v† MÎMŸ°

ÝŠªü‚† ñ£PLò£è txtRating Value â¡Á‹,ð†ìQŸ° (Button) ÝŠªü‚† ñ£PLò£èbtnsubmit Ýè ðò¡ð´ˆF àœ«÷£‹.

Oncrate ðò¡ð£†®™ SetContentViewÍô‹ main.xml -î¬ùGóL™ Þ¬í‚A«ø£‹.Ü´ˆ¶ addListernerOnRating Bar() ñŸÁ‹addListernerOnButton()ðò¡ð´ˆîŠð†´œ÷¶.«ó†®ƒ 𣘠AO‚ ªêŒ»‹«ð£¶ â¡ù ï¬ìªðø «õ‡´‹ â¡ðî¬ù addListernerOnRatingBar()-™ °PŠHì«õ‡´‹. ð†ì¬ùAO‚ ªêŒ»‹«ð£¶â¡ù ï¬ìªðø «õ‡´‹ â¡ðî¬ù

Page 4: Rating Bar in Android Example

package ram.com.progressbar;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.ProgressBar;public class ProgressbarActivity extendsActivity { /** Called when the activity is firstcreated. */ // private static final int PROGRESS = 0x1; private ProgressBar mProgress; private int mProgressStatus = 0; private Handler mHandler = newHandler(); @Override public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mProgress = (ProgressBar)findViewById(R.id.progressBar1); // Start lengthy operation in abackground thread new Thread(new Runnable() { public void run() { while (mProgressStatus < 100){ // mProgressStatus =doWork(); // Update the progress bar mHandler.post(newRunnable() { public void run() {

mProgress.setProgress(mProgressStatus); } }); } } }).start(); }}

- ªî£ì¼‹

Gó™-8

ðì‹-7

«ó†®ƒ 𣘠AO‚ ªêŒ

addListernerOnButton() -™ °PŠHì «õ‡´‹.(Gó™-3)

â‰î «ó†®ƒA¬ù AO‚ ªêŒA«ø£«ñ£,ÜîŸè£ù ñFŠ¹ ªì‚v† MÎM™ «î£¡ÁõîŸè£è addListernerOnRatingBar()-‚è£ùGó™-4 ðò¡ð´Aø¶. Submit ð†ì¬ù AO‚ªêŒî¾ì¡ â¡ù «ó†®ƒ àœ÷¶ â¡ðî¬ù 裇H‚è addListernerOnButton() -‚è£ùGó™ ðò¡ð´Aø¶. F¬óJ™ 裇H‚è toastðò¡ð´ˆîŠð†´œ÷¶. (Gó™ -5)

«ó†®ƒ 𣘠݂®M†®‚è£ù Gó™ -6™ªè£´‚èŠð†´œ÷¶. «ó†®ƒ 𣘠܊O«èê¬ù ªêò™ð´ˆ¶õ RunRatingBarâ¡ø ð†ì¬ù â‚OŠC™ AO‚ ªêŒî£™ªî£ìƒ°‹. (ðì‹-3)

ÜŠO«èê¡ ªêò™ðì ªî£ìƒAò¾ì¡ðì‹-4™ àœ÷¶ «ð£¡Á F¬ó «î£¡Á‹.Í¡ø£õ¶ Start (rating) J¬ù «î˜¾ ªêŒî¾ì¡ KꙆ®¡ ñFŠ¹ 3.0 â¡Á ñ£Á‹.(ðì‹-5)

Submit -ä AO‚ ªêŒî¾ì¡ îèõ™F¬óJ™ «î£¡Á‹. (ðì‹-6) Þ‰î ꣡ÁÍô‹ «ó†®ƒ 𣘠ðò¡ð´ˆ¶õ¶ âšõ£Áâ¡Á 𣘈«î£‹.

Ü´ˆî ꣡ø£è Progress Bar ðò¡ð´ˆ¶õ¶ âšõ£Á â¡Á 𣘊«ð£‹. ProgressBar -介 «ðô†®™ àœ÷ ç𣘋 M†ªü†®L¼‰¶ «î˜‰ªî´‚èô£‹. Šó£Aóv𣼂è£ù Gó™-7™ ªè£´‚èŠ ð†´œ÷¶.

Þƒ° Linear Layout ðò¡ð´ˆF Šó£Aóv𣘠ðò¡ð´ˆîŠð†´œ÷¶. main.xml -è£ùActivity -Progressbar Activity Ý°‹. Šó£Aóv𣘠݂®M†®JÂœ thread å¡P¬ù à¼õ£‚è «õ‡´‹.

Gó™-8-™ Ý‚®M†®J™ ðò¡ð´ˆîŠð´‹ Gó™ ªè£´‚èŠð†´œ÷¶. ÜŠO«èê¡ ªêò™ð†ì¾ì¡ ðì‹-7-™ àœ÷¶«ð£¡Á Šó£Aóv 𣘠F¬óJ™ «î£¡Á‹.