2017-04-20 28 views
3

Google Mapアプリケーションを使用して、ユーザーがマーカーを使用して選択したレストランで評価して、その評価値をsq liteデータベースに保存し、ボタンを押すと、名前と評価値がスクロールビューの文字列として表示されます。 評価値を星として、つまりユーザーの入力方法として表示したいと考えています。 this is how i want to display when view rating is clicked星の数としてデータベースに保存されている評価値を表示する方法

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

<TextView 
    android:text="Rate me" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="20dp" 
    android:id="@+id/rateme" 
    android:layout_weight="0.00" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Restaurent Name" 
    android:ems="10" 
    android:id="@+id/place" 
    android:layout_weight="0.00" /> 
<RatingBar 
    android:id="@+id/ratingBar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:numStars="5" 
    android:stepSize="1.0" 
    android:rating="2.0" 
    android:layout_marginTop="64dp" 
    android:layout_below="@+id/place" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 

    android:ems="10" 
    android:id="@+id/rate" 
    android:layout_weight="0.00" /> 

<Button 
    android:text="Submit" 
    android:layout_width="395dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/submit" 
    android:onClick="insert"/> 

<Button 
    android:text="view Rating" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/viewrate" 
    android:layout_weight="0.00" 
    android:onClick="display"/> 
<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/button2" > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 




     <TextView 
      android:id="@+id/tv" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:gravity="center" 
      android:textStyle="bold" /> 
     <RatingBar 
      android:id="@+id/rat" 
      style="?android:attr/ratingBarStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numStars="5" 
      android:isIndicator="false" 
      android:layout_weight="0.07" /> 
     /> 




    </LinearLayout> 
</ScrollView> 

</LinearLayout> 
+0

あなたはそのための 'RatingBar'を使用することができます役立ちます。 –

答えて

5

はこれを行うには、あなたがRatingBarを使用することができます。 documentationを参照してください。あなたのActivity

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

:あなたのレイアウトXML

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


Float rating = 3.0; // 3.0 is from your database 

// To show rating on RatingBar 
ratingBar.setRating(rating); 

UPDATE:

からratingを取得するには:

Float rating = ratingBar.getRating(); 

// Show rating on TextView 
textView.setText("Rating: " + String.valueOf(rating)); 

は、あなたの添付画像などの出力を取得するには:

Restaurantnumberが固定した場合。 (例:10):

  1. あなたのレイアウトXMLで10 RatingBarと10 TextViewを追加する必要があります。
  2. RatingBar (rb1, rb2, rb3.....)とTextView (tv1, tv2, tv3.....)に異なるidを使用してください。
  3. ゲットdatabaseからrating値:RatingBar

    Float rating1 = 1.0;  
        Float rating2 = 1.0;  
        Float rating3 = 3.0; 
        .............  
        ....................... 
    
  4. 設定rating値とTextView

    rb1.setRating(rating1); 
        rb2.setRating(rating2); 
        rb3.setRating(rating3); 
        ................ 
        ...................... 
    
        tv1.setText("Restaurant One" + String.valueOf(rating1)); 
        tv2.setText("Restaurant Two" + String.valueOf(rating2)); 
        tv3.setText("Restaurant Three" + String.valueOf(rating3)); 
        ................ 
        ....................... 
    

number変数Restaurantの場合:

  1. ListViewまたはRecyclerViewを使用してください。
  2. Google Mapから得られる各レストランデータ(nameおよびrating)を保存するには、ArrayListを使用します。
  3. Adapterを作成して、各レストランをviewListView/RecyclerViewに入荷します。ここでは、行アイテムビューはRatingBarTextViewを含むXMLです。
  4. アダプタのgetView()またはonBindViewHolder()positionためArrayListからレストランnameratingを取得し、TextViewRatingBarに表示から、最後にAdapter
  5. にレストランArrayListを渡します。ここで

いくつかの良いチュートリアルです:

  1. Implementation of RatingBar
  2. Android ListView with Custom Adapter
  3. Android RecyclerView with Custom Adapter

希望は、これは〜

+0

私は同じチュートリアルに従ってユーザーから評価を得るようになりました。私の質問はそれをテキストビューで、つまり対応する名前と評価を一緒に表示する方法です。視聴率をクリックすると、データベース内のすべてのデータが表示されます –

+0

はあなたのために働いていますか? – FAT

+0

いいえ数字で評価値を表示します。星のように表示したい –

0

これを試してみてください。

Float rating = Float.parseFloat(stringFromDatabase); 
mRateBar.setRating(rating); 

textView.setText("Rating: " + stringFromDatabase); 
+0

これは機能しますが、それをテキストビュー、つまり対応する名前と評価で一緒に表示する方法です。視聴率をクリックするとデータベース内のすべてのデータが表示されます –

+0

画像や何かを投稿できますか? –

+0

投稿 –

関連する問題