2016-03-23 6 views
0

私の評価バーの星にこの奇妙な問題があります。あなたは星を見ることができるように完全に私のアプリケーションを回転させると、評価バーの星が多く表示されます

を変更

This is my app in vertical position

This is my app in horizontal position

これは私の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="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@drawable/main" 
    tools:context="com.example.draganam.blankapp.Nivo1Activity"> 

    <TableLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:shrinkColumns="1,0" android:stretchColumns="0,1"> 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingTop="50dp"> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/slika0" 
       android:src="@drawable/becutan1" 
       android:layout_column="0" 
       android:layout_marginRight="40px" /> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/slika1" 
       android:src="@drawable/blizoo1" 
       android:layout_column="1" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <RatingBar 
       android:id="@+id/rb0" 
       style="?android:attr/ratingBarStyleIndicator" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:numStars="5" 
       android:stepSize="1.0" 
       android:isIndicator="true" 
       android:scaleX="0.7" 
       android:scaleY="0.7"/> 

      <RatingBar 
       android:id="@+id/rb1" 
       style="?android:attr/ratingBarStyleIndicator" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:numStars="5" 
       android:stepSize="1.0" 
       android:isIndicator="true" 
       android:scaleX="0.7" 
       android:scaleY="0.7"/> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingTop="50dp"> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/slika2" 
       android:src="@drawable/brilijant1" 
       android:layout_column="0" 
       android:layout_marginRight="40px" /> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/slika3" 
       android:src="@drawable/vitaminka1" 
       android:layout_column="1" /> 
     </TableRow> 
     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
     <RatingBar 
      android:id="@+id/rb2" 
      style="?android:attr/ratingBarStyleIndicator" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numStars="5" 
      android:stepSize="1.0" 
      android:isIndicator="true" 
      android:scaleX="0.7" 
      android:scaleY="0.7"/> 

     <RatingBar 
      android:id="@+id/rb3" 
      style="?android:attr/ratingBarStyleIndicator" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numStars="5" 
      android:stepSize="1.0" 
      android:isIndicator="true" 
      android:scaleX="0.7" 
      android:scaleY="0.7"/> 
    </TableRow> 

    </TableLayout> 
</RelativeLayout> 

これは私のJavaコードです:私は、データベースファイルからの評価値を取得し、すべてが正常に動作します

Context ctx2 = this; 
String[][] arrayWithInformations = new String[5][]; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_nivo1); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    DatabaseOperations databaseOperations = new DatabaseOperations(ctx2); 
    Cursor cursorLogo = databaseOperations.getInformationsForLogos(databaseOperations); 
    // looping through all rows and adding to list 
    Integer i = 0; 
    if (cursorLogo.moveToFirst()) { 
     do { 
      String[] helperArray = {cursorLogo.getString(0),cursorLogo.getString(1),cursorLogo.getString(2),cursorLogo.getString(3), 
        cursorLogo.getString(4),cursorLogo.getString(5)}; 
      arrayWithInformations[i] = helperArray; 
      i++; 

     } while (cursorLogo.moveToNext()); 
    } 
    int firstRating = Integer.parseInt(arrayWithInformations[0][4]); 
    int secondRating = Integer.parseInt(arrayWithInformations[1][4]); 
    int thirdRating = Integer.parseInt(arrayWithInformations[2][4]); 
    int fourthRating = Integer.parseInt(arrayWithInformations[3][4]); 
    RatingBar rb0 = (RatingBar) findViewById(R.id.rb0); 
    rb0.setRating(firstRating); 
    RatingBar rb1 = (RatingBar) findViewById(R.id.rb1); 
    rb1.setRating(secondRating); 
    RatingBar rb2 = (RatingBar) findViewById(R.id.rb2); 
    rb2.setRating(thirdRating); 
    RatingBar rb3 = (RatingBar) findViewById(R.id.rb3); 
    rb3.setRating(fourthRating); 

、星はOKですが、私は携帯電話を回転させたときに、彼らはすべて間違っています。私はthatを知っているあなたの携帯電話を回転させると、現在の活動が再びロードされますが、それは同じコードであり、間違って読み込まれます。たぶんそれは星を倍増している。私は面白く聞こえるかもしれないが、何がうまくいかないのか分からない。誰かが私にリードを与えてください..

+1

あなたはarrayWithInformationsが何であるかを私たちに示して、どこで、それは私はあなたがブレークポイントでデバッグを開始示唆 – Raghunandan

+0

をinitiaizedであることができます。あなたには何も間違っていません。問題の星を計算すると、sqliteからデータを取得する方法がわかります – Raghunandan

+0

私はデバッグを行いました。すべてうまく見える... 私はそれがSQLiteデータベースファイルから来ていると言ったように。彼らは垂直モードで正しく、最初のものは4、次に5,2と3です。しかし、回転すると、それらは変化し、垂直に戻って回転すると再びうまくなります。 –

答えて

関連する問題