2016-12-05 7 views
0

Я добавляю эту панель оценки в свое приложение, но мое приложение падает после заставки. Я пробовал другую версию, но она всегда сбой. Даже не попадает на страницу с баром оценки.Проблема с добавлением рейтинговой панели в приложении для студии android

Что я делаю неправильно?

XML файл:

<RatingBar 
     android:id="@+id/ratingBar" 
     style="@style/Widget.AppCompat.RatingBar.Small" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:numStars="5" 
     android:paddingBottom="5dp" 
     android:stepSize="1" /> 

    <TextView 
     android:id="@+id/value" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="Value: " /> 

    <Button 
     android:id="@+id/ratingButton" 
     android:layout_width="wrap_content" 
     android:layout_height="30dp" 
     android:layout_gravity="center" 
     android:background="#ff6600" 
     android:elevation="10dp" 
     android:padding="7dp" 
     android:text="Submit Rating" 
     android:textSize="12sp" /> 

MainActivity.java 

    public class MainActivity extends AppCompatActivity { 

    RatingBar ratingBar; 
    Button btn; 


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

    getSupportActionBar().setDisplayShowHomeEnabled(true); 
    getSupportActionBar().setIcon(R.drawable.ic_launcher); 

    ratingBar=(RatingBar)findViewById(R.id.ratingBar1); 
    btn=(Button)findViewById(R.id.button1); 

    // Set ChangeListener to Rating Bar 
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
     public void onRatingChanged(RatingBar ratingBar, float rating, 
            boolean fromUser) { 

      Toast.makeText(getApplicationContext(),"Your Selected Ratings : " + String.valueOf(rating),Toast.LENGTH_LONG).show(); 

     } 
    }); 

    btn.setOnClickListener(new View.OnClickListener() { 


     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      float rating=ratingBar.getRating(); 
      Toast.makeText(getApplicationContext(),"Your Selected Ratings : " + String.valueOf(rating),Toast.LENGTH_LONG).show(); 
     } 
    }); 

} 


    public void openAppetizersList(View v){ 

     if(v.getId() == R.id.appetizers){ 
      Intent i = new Intent(MainActivity.this, AppetizersActivity.class); 
      startActivity(i); 

     } 
    } 

    public void openDishList(View v){ 

     if(v.getId() == R.id.maindish){ 
      Intent i = new Intent(MainActivity.this, DishActivity.class); 
      startActivity(i); 

     } 
    } 

    public void openSidesList(View v){ 

     if(v.getId() == R.id.sides){ 
      Intent i = new Intent(MainActivity.this, SidesActivity.class); 
      startActivity(i); 

     } 
    } 

    public void openDessertsList(View v) { 

     if (v.getId() == R.id.desserts) { 
      Intent i = new Intent(MainActivity.this, DessertsActivity.class); 
      startActivity(i); 

     } 
    } 

    public void openBonusButton(View v) { 

     if (v.getId() == R.id.bonus) { 
      Intent i = new Intent(MainActivity.this, BonusActivity.class); 
      startActivity(i); 

     } 
    } 

    public void openTextClick(View v) { 

     if (v.getId() == R.id.textClick) { 
      Intent i = new Intent(MainActivity.this, BonusActivity.class); 
      startActivity(i); 

     } 
    } 



    } 
+0

ли вы, возможно, есть журнал сбоев? Это значительно облегчило бы нам найти проблему :) –

+0

нет ... это то, что я получаю: 9: 11: 26 AM Выполнение задач: [: app: assembleDebug] 9:11:28 AM Gradle build завершено с 3 ошибками в 2s 4ms 9:12:54 AM Выполнение задач: [: app: assembleDebug] 9:12:55 AM Сборка Gradle завершена с 3 ошибками в 940 мс 9:13:30 AM Выполнение задач: [: app: assembleDebug] 9:13:33 AM Gradle build завершен в 2s 983ms ... он просто говорит, что приложение продолжает останавливаться – user6889089

+0

А, это из журнала событий Android Studio. Вы можете увидеть отладочную информацию из своего приложения в Android-мониторе (https://developer.android.com/studio/profile/monitor.html), когда вы запускаете приложение в режиме отладки - журнал сбоев должен появиться в там. –

ответ

0

Согласно журнала аварии, вы пытаетесь сделать setOnRatingBarChangeListener на нулевой объект, то есть ваша ratingBar переменная равна нулю. Давайте посмотрим на декларацию:

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

Однако в макете XML, мы видим

<RatingBar 
    android:id="@+id/ratingBar" 
    ... /> 

Значение есть несоответствие двух идентификаторов ("ratingBar1" и "ratingBar"). Вы можете исправить это, изменив один из них, чтобы соответствовать другому. Например, ratingBar:

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

И в XML:

<RatingBar 
    android:id="@+id/ratingBar" 
    ... /> 
+0

Я изменил это ... он все еще сбой – user6889089

+0

Мм это тот же самый крах? Вы проверяли журналы? –

+0

Я добавляю код в нужное место. когда я удаляю все приложение, так что это что-то с этой частью. Извините, я новичок в этом. – user6889089