评分栏 Android

Rating Bar Android

嗨,我正忙着制作一个程序,您可以在其中给别人打分 我一直在玩 Rating Bar 小部件,但是在选择星星数量后我很难让它显示评级。我在做什么我做错了。我还想知道 android sdk 是否有任何关于赞成票和反对票的东西,将图像用于评级系统是否明智。

某些代码被注释掉的原因是因为我的应用程序在未注释时不会 运行 但我知道它需要做我想做的事情。

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
public class rating_system_fragment extends Fragment implements OnRatingBarChangeListener{

RatingBar ratingBar;
TextView ratingResult;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    inflater.inflate(R.layout.rating_system_fragment,container,false);
    //setContentView(R.layout.activity_main);
    return inflater.inflate(R.layout.rating_system_fragment, container, false);
    //ratingResult = (TextView) ratingResult.findViewById(R.id.textViewRating);
    //((RatingBar) ratingBar.findViewById(R.id.ratingBar))
      //      .setOnRatingBarChangeListener(this);
}

@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
                            boolean fromTouch) {
    final int numStars = ratingBar.getNumStars();
    ratingResult.setText(rating + "/" + numStars);
}

}

您的注释代码中存在多个语法错误。它应该是这样的:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View rootView = inflater.inflate(R.layout.rating_system_fragment,container,false);
    ratingResult = (TextView) rootView.findViewById(R.id.textViewRating);
    ratingBar = (RatingBar) rootView.findViewById(R.id.ratingBar);
    ratingBar.setOnRatingBarChangeListener(this);

    return rootView;
}

这里的关键是 ratingBartextViewRating 是您的根视图的子视图,只有在您对它们进行扩充后才能访问它们。