我是Android编程的新手,但有些东西我似乎无法在网上找到。 我的问题是我想在另一个方法中使用onCreate方法中的变量。 我确定这是在某个地方,但无论我搜索到什么,我都找不到灵魂。也许我说这一切都错了...... 我想重新使用onCreate中的双精度执行IF语句来查看答案是否正确。应用程序暂时崩溃..
这是我的代码:
public class Addition extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addition);
View results = findViewById(R.id.check_button1);
//set event listener
results.setOnClickListener(this);
double myRanNumber1; {
// variable we will use to store a random number
myRanNumber1 = Math.random();
//myRanNumber generated between 0.000000... & 9.9999...
myRanNumber1 = myRanNumber1 *10;
// myRanNumber between 0.00.. and 9.999..
myRanNumber1 = (int) myRanNumber1;// myRanNumber between 0 and 9 (fraction chopped off)
double myRanNumber=(myRanNumber1);
DecimalFormat df = new DecimalFormat("####");
String number = df.format(myRanNumber);
String printnumber = number;
TextView random = (TextView) findViewById(R.id.TextViewRand);
random.setText(printnumber);
}
double myRanNumber2;
{
// variable we will use to store a random number
myRanNumber2 = Math.random();
//myRanNumber generated between 0.000000... & 9.9999...
myRanNumber2 = myRanNumber2 *10;
// myRanNumber between 0.00.. and 9.999..
myRanNumber2 = (int) myRanNumber2;// myRanNumber between 0 and 9 (fraction chopped off)
double myRanNumber=(myRanNumber2);
DecimalFormat df = new DecimalFormat("####");
String number = df.format(myRanNumber);
String printnumber = number;
TextView random = (TextView) findViewById(R.id.TextViewRand1);
random.setText(printnumber);
}
double additionRes1 = addition1(myRanNumber1, myRanNumber2);
Intent theIntent = new Intent(this, Results.class);
Bundle b = new Bundle();
b.putDouble("key", additionRes1);
theIntent.putExtras(b);
startActivity(theIntent);
}
private double addition1 (double myRanNumber1, double myRanNumber2)
{
return (double) (myRanNumber1 + myRanNumber2);
}
任何帮助都非常适合:)
答案 0 :(得分:3)
变量的基本范围要求如果要从不同的函数中操作它们,则将它们声明为类范围变量。
public class MainActivity extends Activity {
//Declare a class variable to use in this class
public Double myNumber1;
public Double myNumber2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myNumber1 = 250;
myNumber2 = 10;
//mySum is only available for use within this method
Double mySum = addition1 (myNumber1, myNumber2);
}
private double addition1 (double myRanNumber1, double myRanNumber2) {
return myRanNumber1 + myRanNumber2;
}
}
答案 1 :(得分:0)
使用密钥代码....... 您可以使用键存储值,使用键
存储getValue Intent i = new Intent();
i.putExtra("key", doubleValue);
i.getDoubleExtra("key", defValue);