gpt4 book ai didi

java - 无法从警报对话框中的 RatingBar 获取值

转载 作者:行者123 更新时间:2023-11-30 09:24:59 25 4
gpt4 key购买 nike

我有一个显示评级栏的警告对话框。

LayoutInflater rating = LayoutInflater.from(RatingActivity.this);
final View v = rating.inflate(R.layout.rating_layout, null);

AlertDialog.Builder adb = new AlertDialog.Builder(RatingActivity.this);
adb.setTitle("Rate us!);
adb.setView(v);
AlertDialog ratingbar = adb.create();

final RatingBar cleanbar = (RatingBar) ratingbar.findViewById(R.id.clealiness);

当我触发 onclick 监听器时,它显示 NULL POINTER EXCEPTION。第二行错误表示 getNumStars() 行中有错误。之后强制关闭。

adb.setPositiveButton("Rate", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//this line error. means they cant get the rating value?
final String cleaninput = Integer.toString(cleanbar.getNumStars());

我可以知道任何其他方法来获取 ratingbar 的值吗?我见过很少像 ratingBar.getRating(); ratingBar.getNumStars();

所有这些都无法工作...即使我将值直接放入 int。

final int cleaninput = (int) cleanbar.getRating();  //fails

编辑(解决)::

final RatingBar cleanbar = (RatingBar)v.findViewById(R.id.clealiness); 

我将评分栏替换为 v 并且有效!我不知道原因 >.<

最佳答案

我认为你的问题是这样的:

final RatingBar cleanbar = (RatingBar) ratingbar.findViewById(R.id.clealiness);

它不会正确初始化 RatingBar,因为您没有从 Activity(包含 RatingBar)的布局初始化 RatingBar,这就是为什么您在 NPE 得到 NPE 的原因p>

cleanbar.getNumStars() // cleanbar is assigned as null

改成

final RatingBar cleanbar = (RatingBar) findViewById(R.id.clealiness);

现在它应该可以工作了。

更新:

LayoutInflater rating = LayoutInflater.from(RatingActivity.this);
final View ratingView = rating.inflate(R.layout.rating_layout, null);

AlertDialog.Builder adb = new AlertDialog.Builder(RatingActivity.this);
adb.setTitle("Rate us!);
adb.setView(ratingView);

AlertDialog ratingbar = adb.create();

现在正确获取值:

RatingBar cleanbar = (RatingBar) ratingView.findViewById(R.id.clealiness);

您需要为 RatingBar 分配您膨胀的 View

现在它应该可以工作了:

final int cleaninput = (int) cleanbar.getRating(); 

关于java - 无法从警报对话框中的 RatingBar 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com