gpt4 book ai didi

java - 在整个类里面具有双重值(value)

转载 作者:行者123 更新时间:2023-12-01 13:08:47 26 4
gpt4 key购买 nike

我会尝试减少信息,但这个应用程序应该在您每次按下单选按钮时计算分数。有 4 个带有单选按钮的屏幕,第五个屏幕显示您的分数。

不过计算结果总是数字 4。无论按什么,根本没有任何添加。我哪里出错了?

    RadioButton gpa1 = (RadioButton) findViewById(R.id.GPA1);
RadioButton gpa2 = (RadioButton) findViewById(R.id.GPA2);
RadioButton gpa3 = (RadioButton) findViewById(R.id.GPA3);
RadioButton gpa4 = (RadioButton) findViewById(R.id.GPA4);

//Calculation based on GPA question
if (gpa1.isChecked()){calculation = calculation + 1;}
else{ if (gpa2.isChecked()) {calculation = calculation + 2; }
else{ if (gpa3.isChecked()) {calculation = calculation + 3; }
else{ if (gpa4.isChecked()) {calculation = calculation + 4; }
else{calculation = 0.0; }}}}

这是第一个主类,在他们选择答案并按下一步按钮后,它会转到第二页,其中包含另一个问题和另外 4 个答案,这些答案也应该添加到计算变量中。

下面是一些更多的代码,以显示完全涵盖的内容:

    @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);

//RESTORES SAVED STATES
if (savedInstanceState == null ){calculation = 0.0;}
else{calculation = savedInstanceState.getDouble(CALCULATION);}

addListenerOnButton();

RadioButton gpa1 = (RadioButton) findViewById(R.id.GPA1);
RadioButton gpa2 = (RadioButton) findViewById(R.id.GPA2);
RadioButton gpa3 = (RadioButton) findViewById(R.id.GPA3);
RadioButton gpa4 = (RadioButton) findViewById(R.id.GPA4);

//Calculation based on GPA question
if (gpa1.isChecked()){calculation = calculation + 1;}
else{ if (gpa2.isChecked()) {calculation = calculation + 2; }
else{ if (gpa3.isChecked()) {calculation = calculation + 3; }
else{ if (gpa4.isChecked()) {calculation = calculation + 4; }
else{calculation = 0.0; }}}}

//Get button to do button stuff like go to the next page
Button butGPA = (Button) findViewById(R.id.butGPA);
butGPA.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Intent i = new Intent(Main.this, Main2.class);
startActivity(i);
}
});


}

最佳答案

由于您的 if 语句位于 onCreate() 中,因此该值始终是默认检查的 RadioButton ,这显然是是第一个,这就是为什么你总是得到 4 的值。移动

 if (gpa1.isChecked()){calculation = calculation + 1;}
else{ if (gpa2.isChecked()) {calculation = calculation + 2; }
else{ if (gpa3.isChecked()) {calculation = calculation + 3; }
else{ if (gpa4.isChecked()) {calculation = calculation + 4; }
else{calculation = 0.0; }}}}

某些事件,例如 Button onClick() 或用于移动到下一个 Activity 的任何事件。您还可以在 onCheckedChangeListener() 中设置该值。

请记住,onCreate() 会在 Activity 被销毁后第一次启动时被调用。因此,您放入其中的任何代码(除非在某些事件监听器中)都不会在 onCreate() 中发生更改。

编辑

butGPA.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (gpa1.isChecked()){calculation = calculation + 1;}
else{ if (gpa2.isChecked()) {calculation = calculation + 2; }
else{ if (gpa3.isChecked()) {calculation = calculation + 3; }
else{ if (gpa4.isChecked()) {calculation = calculation + 4; }
else{calculation = 0.0; }}}}
Intent i = new Intent(Main.this, Main2.class);
i.putExtra("calc", calculation);
startActivity(i);
}
});

将值传递给每个Activity,然后获取值(在onCreate()中或之后)执行类似的操作

Intent i = getIntent();
double calc = i.getDoubleExtra("calc", 0.0);

假设该变量最初是一个double,尽管我不确定为什么它不是一个int。您可能想要检查 null 等内容,但这应该可以帮助您开始。

关于java - 在整个类里面具有双重值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050513/

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