Skip to content Skip to sidebar Skip to footer

Android Ratingbar Onratingchanged Doesn't Get Called

In my Android app I've got a Fragment showing a RatingBar, which has a onRatingChanged listener that is not responding to ratingbar changes. So here's my code: rating_fragment.xml

Solution 1:

Try this.

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Create a new AlertDialog.Builder
    AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

    // Get the layout inflater
    LayoutInflater layoutInflater = getActivity().getLayoutInflater();
    rootView = layoutInflater.inflate(R.layout.rating_fragment, null);

    // Inflate the layout
    builder.setView(R.layout.rating_fragment);
    builder.setTitle(getString(R.string.rating_fragment_title));
    // edited here
    // initialize();
    return builder.create();
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.rating_fragment, container, false);
    // edited here,add initialize() method
    initialize();
    return rootView;
}


private void initialize() {
    // edited here,add log info
    Log.e("RatingBar", "initialize start");
    RatingBar ratingBar = (RatingBar) rootView.findViewById(R.id.rating_fragment_ratingbar);
    mWhatsWrong = (EditText) rootView.findViewById(R.id.rating_fragment_whatswrong);

    // edited here
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean b) {

            if (rating < 4.0f) {
                mWhatsWrong.setVisibility(View.VISIBLE);
            } else {
                mWhatsWrong.setVisibility(View.GONE);
            }

            Log.e("RatingBar", rating + "");
        }
    });
}

Post a Comment for "Android Ratingbar Onratingchanged Doesn't Get Called"