【发布时间】:2014-03-06 06:20:16
【问题描述】:
我正在检索这样的 TextView 的值
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculation);
TextView heading = (TextView) findViewById(R.id.paper_name);
......
}
我在同一个类中有另一个方法
@Override
public void onClick(View v) {
int BLACK_AND_WHITE_MULTIUPLIER = 4200;
int COLOR_MULTIUPLIER = 6400;
switch (v.getId()) {
case R.id.btCalculate:
int multiplier = rbColor.isChecked() ? COLOR_MULTIUPLIER : BLACK_AND_WHITE_MULTIUPLIER;
int column = Integer.parseInt((String) spColumn.getSelectedItem());
int inch = Integer.parseInt((String) spInch.getSelectedItem());
tvAmount.setText((multiplier * column * inch) + "");
break;
}
}
我想根据我从 onCreate 方法获得的 heading 的值来设置 COLOR_MULTIUPLIER 和 BLACK_AND_WHITE_MULTIUPLIER 的值。有可能吗?
【问题讨论】:
-
在
onCreate方法之外声明您的 TextViewheading。在onCreate内部,您为其分配了一个值。现在您的onClick方法可以访问变量heading。 -
你应该使用全局变量标题应该是全局的,而不是本地的。在类中声明 TextView 标题
-
您的意思是获取 textview 的值并将其转换为“int”以便您可以将其设置为“MULTIUPLIERS”吗?
-
@Takendarkk :我有两个整数变量 LACK_AND_WHITE_MULTIUPLIER 和 COLOR 。我想根据标题更改这两个变量的值。
-
现在这两个变量被声明、初始化,并且只能在
onClick方法内部访问。也许像我的回答所说的那样让它们成为全局变量,你应该使用heading。这样,如果您进行任何更改,它们将在您退出onClick方法后可见。
标签: java android methods scope