2014-11-17 3 views
0

Я пытаюсь использовать RatingBar, как это.использование RatingBar в диалоговом окне

private RatingBar ratingBar; 
TextView submitTv; 
int rate; 

public RateDialog(){ 
    rate = 0; 
} 

public Dialog onCreateDialog(Bundle savedInstanceState){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    // Get the layout inflater 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 
    View v = inflater.inflate(R.layout.dialog_rate, null); 
    builder.setView(v); 
    ratingBar = (RatingBar)v.findViewById(R.id.ratingbar); 
    submitTv = (TextView)v.findViewById(R.id.rate_textview_submit); 

    submitTv.setOnClickListener(this); 
    ratingBar.setOnRatingBarChangeListener(this); 
    return builder.create(); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.rate_textview_submit: 
      sendResult(INT_RATING_CODE,rate); 
      getDialog().dismiss(); 
     break; 
    } 
} 

@Override 
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { 
    //rate = (int)rating; 
    rate = (int) ratingBar.getRating(); 
    Toast.makeText(getActivity(),""+String.valueOf(rate),Toast.LENGTH_SHORT).show(); 
} 

и код XML:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="150dp"> 

    <RatingBar 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/ratingbar" 
     android:numStars="5" 
     android:gravity="center" 
     android:layout_gravity="center" 
     android:isIndicator="true" 
     android:stepSize="1.0" 
     android:rating="2.0"/> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@drawable/dark_grey_transparent" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:text="Submit" 
     android:textSize="18sp" 
     android:textStyle="normal" 
     android:textColor="@color/orange" 
     android:background="@drawable/grey_semitransparent" 
     android:gravity="center" 
     android:id="@+id/rate_textview_submit" /> 
</LinearLayout> 

Однако, я не могу получить RatingBar ответить на inputs.Even после попытки использовать тост в onRatingChanged() тост не срабатывает. Где я иду не так?

+0

попробуйте удалить 'ClickListener' из вашего' TextView' и проверить, разрешает ли он вашу проблему или нет. –

+0

@MohammadRahchamani нет, это не помогает. –

ответ

1
android:isIndicator="true" 

Это должно быть неверно.

+0

Это должен быть принятый ответ. – FlyingPumba