在 android 中使用 final 关键字
use of final keyword in android
一个 activity 称这个
Intent intent = new Intent(DrinkCategoryActivity.this, DrinkActivity.class);
intent.putExtra(DrinkActivity.EXTRA_DRINKNO, (int) id);
然后在另一个activity中,接收意图的是以下代码
public class DrinkActivity extends Activity {
public static final String EXTRA_DRINKNO = "drinkNo"; // ???????
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drink);
// Get the drink from the intent
int drinkNo = (Integer)getIntent().getExtras().get(EXTRA_DRINKNO); // ?????
Drink drink = Drink.drinks[drinkNo];
我不明白的部分是第二个activity中EXTRA_DRINKNO
变量的整个声明和定义。首先,我只是希望它被定义为 int
而不是 String
。为它分配实际值 "drinkNo"
有什么意义?
然后(参见第二个问号标记行)drinkNo
被转换为 Integer
。这还是同一个变量吗?
EXTRA_DRINKNO
表示进入映射的键,它不是整数值。也许将它命名为 EXTRA_DRINKNO_KEY
.
会更好
get(EXTRA_DRINKNO)
正在使用字符串值作为键从 getExtras()
中提取整数。
变量drinkNo
表示实际的整数值。
我想你是在谈论
中的 final
public static final String EXTRA_DRINKNO = "drinkNo";
那只是为了获得全局访问权限而无法再次更改该变量,因为它被用作您的 Extras 的 KEY,它将进入您的意图。
你可以使用,
int drinkNo = getIntent().getIntExtra(DrinkActivity.EXTRA_DRINKNO, -1);
-1 将被分配给 drinkNo 如果你没有这个,
intent.putExtra(DrinkActivity.EXTRA_DRINKNO, (int) id);
我不起诉 (int) id
演员。这可能是多余的。
一个 activity 称这个
Intent intent = new Intent(DrinkCategoryActivity.this, DrinkActivity.class);
intent.putExtra(DrinkActivity.EXTRA_DRINKNO, (int) id);
然后在另一个activity中,接收意图的是以下代码
public class DrinkActivity extends Activity {
public static final String EXTRA_DRINKNO = "drinkNo"; // ???????
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drink);
// Get the drink from the intent
int drinkNo = (Integer)getIntent().getExtras().get(EXTRA_DRINKNO); // ?????
Drink drink = Drink.drinks[drinkNo];
我不明白的部分是第二个activity中EXTRA_DRINKNO
变量的整个声明和定义。首先,我只是希望它被定义为 int
而不是 String
。为它分配实际值 "drinkNo"
有什么意义?
然后(参见第二个问号标记行)drinkNo
被转换为 Integer
。这还是同一个变量吗?
EXTRA_DRINKNO
表示进入映射的键,它不是整数值。也许将它命名为 EXTRA_DRINKNO_KEY
.
get(EXTRA_DRINKNO)
正在使用字符串值作为键从 getExtras()
中提取整数。
变量drinkNo
表示实际的整数值。
我想你是在谈论
中的final
public static final String EXTRA_DRINKNO = "drinkNo";
那只是为了获得全局访问权限而无法再次更改该变量,因为它被用作您的 Extras 的 KEY,它将进入您的意图。
你可以使用,
int drinkNo = getIntent().getIntExtra(DrinkActivity.EXTRA_DRINKNO, -1);
-1 将被分配给 drinkNo 如果你没有这个,
intent.putExtra(DrinkActivity.EXTRA_DRINKNO, (int) id);
我不起诉 (int) id
演员。这可能是多余的。