Android RatingBar in Layout

การเรียกใช้ Rating Bar บน Layout ธรรมดา จะประกอบไปด้วย 2 ไฟล์คือ MainActivity.java กับ activity_main.xml และแก้ไขไฟล์ string.xml




Example : string.xml
<resources>
    <string name="app_name">Rating1</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="text_label_1">Rate</string>
    <string name="button_label">Submit</string>
    <string name="text_label_2">Result: </string>
</resources>
Example : 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="@string/text_label_1"
        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/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_label" />

    <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="@string/text_label_2"
            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>
เราสามารถเพิ่มหรือลดจำนวนดาวได้จากโค้ด android:numSters="" 

Example : MainActivity.java
package com.rating.rating1;

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 {

   private RatingBar ratingBar;
   private TextView ratingValue;
   private Button button;

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

  addListenerOnRatingBar();
  addListenerOnButton();

   }

   public void addListenerOnRatingBar() {

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

  ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

   public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {

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

   }
  });
   }

   public void addListenerOnButton() {

  ratingBar = (RatingBar) findViewById(R.id.ratingBar);
  button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {

    Toast.makeText(MainActivity.this, String.valueOf(ratingBar.getRating()), Toast.LENGTH_LONG).show();
   }

  });

   }
 }

ผลลัพธ์ :




























ที่มา : javacodegeeks

ไม่มีความคิดเห็น:

แสดงความคิดเห็น