Android AlertDialog无法使用自定义布局

Android AlertDialog无法使用自定义布局,android,android-layout,android-alertdialog,ratingbar,Android,Android Layout,Android Alertdialog,Ratingbar,我正在尝试构建一个用户体验对话框,其中包含评级和评论 我已经建立了对话框,一切正常,但当我按下可能按钮时,由于某种原因它崩溃了 我的onCreate() setupButtonEvents() 以及insertDataToDatabaseFromRating() Logcat out错误 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RatingBar.setOnRati

我正在尝试构建一个用户体验对话框,其中包含评级和评论

我已经建立了对话框,一切正常,但当我按下可能按钮时,由于某种原因它崩溃了

我的
onCreate()

setupButtonEvents()

以及
insertDataToDatabaseFromRating()

Logcat out错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RatingBar.setOnRatingBarChangeListener(android.widget.RatingBar$OnRatingBarChangeListener)' on a null object reference
            at com.order.app.order.UserProfile.insertDataToDatabaseFromRating(UserProfile.java:144)
第144行:
ratingBar.setOnRatingBarChangeListener(新的ratingBar.OnRatingBarChangeListener(){

有谁能帮我解决这个问题吗???
提前感谢!!!!

可能
分级栏
AlertDialog
版面中。要从AlertDialog版面访问视图,请使用在
builder.setView(newLayout)
中传递的视图对象

在您的情况下,将视图参数添加到
insertDataToDatabaseFromRating
方法,然后访问
评级栏
,如下所示:

private void insertDataToDatabaseFromRating(View view) {
 ratingBar = (RatingBar)view. findViewById(R.id.ratingBar);
 .....
}
调用时,将
newLayout
对象传递给
insertDataToDatabaseFromRating


对于想从
AlertDialog

访问的其他视图,也可以这样做。我自己刚刚看到了这一点……我问得很傻……但这不算评分。你能帮我做些什么吗?@KostasMatrix:当然,我会尝试,请解释更多关于下一个问题的信息。我建议扩展
DialogFragment
。这是一个更好、更多的对象比
AlertDialog.builder.
private void insertDataToDatabaseFromRating() {
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                percent = (int) ratingBar.getRating();
                ratingNum.setText("" + percent);
            }
        });
        comTxt = ratingComment.getText().toString();
        if (!comTxt.isEmpty()) {
            ratingCommentText.setText(comTxt);
        }
    }
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RatingBar.setOnRatingBarChangeListener(android.widget.RatingBar$OnRatingBarChangeListener)' on a null object reference
            at com.order.app.order.UserProfile.insertDataToDatabaseFromRating(UserProfile.java:144)
private void insertDataToDatabaseFromRating(View view) {
 ratingBar = (RatingBar)view. findViewById(R.id.ratingBar);
 .....
}