Android RatingBar in AlertDialog Popup

นการสร้าง RatingBar บน Dialog Popup สามารถสร้างโดยใช้วิธีการ Set View บน Dialog โดยเรียก Widgets RatingBar ที่ได้จากการสร้างขึ้นมาใหม่บน Dynamic Runtime ประกอบไปด้วย 2 ไฟล์ คือ MainActivity.java กับ activity_main.xml



Example : activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="35dp"
        android:text="Click" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="51dp"
        android:text="result" />

</RelativeLayout>
Example : MainActivity.java
package com.rating.rating2;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

public class MainActivity extends Activity {

 public TextView txtView;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
        
    if (android.os.Build.VERSION.SDK_INT > 9) {
             StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
             StrictMode.setThreadPolicy(policy);
         }
  
  txtView = (TextView)findViewById(R.id.textView1); // TextView
  
        // Button1
        final Button btn1 = (Button) findViewById(R.id.button1);
        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
             final AlertDialog.Builder popDialog = new AlertDialog.Builder(MainActivity.this);
          final RatingBar rating = new RatingBar(MainActivity.this);
          rating.setMax(5);

          popDialog.setIcon(android.R.drawable.btn_star_big_on);
          popDialog.setTitle("Vote!! ");
          popDialog.setView(rating);

          // Button OK
          popDialog.setPositiveButton(android.R.string.ok,
            new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int which) {
              txtView.setText(String.valueOf(rating.getProgress()));
              dialog.dismiss();
             }

            })

          // Button Cancel
            .setNegativeButton("Cancel",
              new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
               }
              });

          popDialog.create();
          popDialog.show();
            } 
        });
        
 }
}


 สามารถ set เพิ่มหรือลดจำนวนดาวได้ที่โค้ด rating.setMax();

ผลลัพธ์ :

ที่มา : Thaicreate

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

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