2014-01-31 3 views
0

я получил ошибку при запуске его в эмуляторе Android .. сразу послеAndroid основная ошибка ,, без причины ..

я добавить либо:

ТВ = (TextView) findViewById (R.id. textView1); // или //

rb = (RatingBar) findViewById (R.id.ratingBar1); // по некоторым причинам (без другого кода) //

нужна помощь, я хочу, чтобы сделать изменения TextView как изменение RatingBar

XML

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="39dp" 
    android:text=" " 
    android:textSize="50dp"/> 

<RatingBar 
    android:id="@+id/ratingBar1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="54dp" 
    android:numStars="5" 
    android:rating="0" /> 

Java

package com.examplef.rating; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.RatingBar; 
import android.widget.RatingBar.OnRatingBarChangeListener; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

TextView tv; 
RatingBar rb; 

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

    tv = (TextView) findViewById(R.id.textView1); 
    rb = (RatingBar) findViewById(R.id.ratingBar1); 

    rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener(){ 

     @Override 
     public void onRatingChanged(RatingBar ratingBar, float rating, 
       boolean fromUser) { 
      tv.setText(rb.getNumStars()); 

     } 

    }); 
} 

} 

один из ловушек говорит:

: E/AndroidRuntime(2014): java.lang.RuntimeException: 
Unable to start activity   
ComponentInfo{com.examplef.rating/com.examplef.rating.MainActivity}: 
java.lang.ClassCastException: android.widget.RatingBar cannot be cast 
toandroid.widget.TextView 
+3

Не могли бы вы рассказать нам, что ошибки вы получаете? – PakkuDon

+0

Отправьте свой logCat –

+0

Вставьте свои ошибки LogCat. –

ответ

1
Caused by: java.lang.ClassCastException: android.widget.RatingBar cannot be cast to android.widget.TextView 

Вы настроите Ваше мнение правильно. Итак, очистите и создайте свой проект один раз и запустите приложение.

rb.getNumStars() возвращает int.

http://developer.android.com/reference/android/widget/RatingBar.html#getNumStars()

public int getNumStars() 

Added in API level 1 
Returns the number of stars shown. 

Returns 
The number of stars shown. 

Так изменится

tv.setText(String.valueOf(rb.getNumStars())); 

setText ищет ресурс с id который является целочисленное значение. Если вы не нашли, вы получите ResourceNotFOundException.

Вы можете увидеть ниже

public final void setText (int resid) // what you have 

public final void setText (CharSequence text) // what you need 
+1

@BrianRoach объявлено как переменные экземпляра. Если его объявлено внутри onCreate да, я согласен, что он должен быть окончательным. – Raghunandan

+0

Да, я наконец-то понял, что, когда я снова посмотрю на него. –

+1

Thx теперь работает – user3255883

Смежные вопросы