Android:将int从一个活动传递到另一个活动时出错

时间:2013-01-03 10:15:21

标签: android

我正在Activity A中阅读我的数据库 - 获取StringintString。 我将此传递给Activity B,并希望将其显示在3个文本字段中 String值正确显示,但int给出了此错误

01-03 15:39:48.252: E/ERROR(980): android.content.res.Resources$NotFoundException: String resource ID #0x1f4

我的代码

活动A

Intent myintent2 = new Intent(MoneySummaryPage.this,EnterBankDetails.class);
myintent2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
myintent2.putExtra("bank", updateBank);
myintent2.putExtra("amount", updateAmt);
myintent2.putExtra("Currency", updateCur);
myintent2.putExtra("constant", "1");
startActivity(myintent2);

活动B

    BankName =      (EditText)findViewById(R.id.bankNameLabel);
    BalanceAmount = (EditText)findViewById(R.id.balanceLabel);
    currencySpin = (Spinner)findViewById(R.id.currencySpinner);

    constantpass = getIntent().getExtras().getString("constant");

    BankName.setText(getIntent().getExtras().getString("bank"));
    BalanceAmount.setText(getIntent().getIntExtra("amount", 0));

BalanceAmountInteger字段,我在那里得到空白值。 另外,我的第三个String将被填充在Spinner中?有人能告诉我填充它的代码吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

试试这个,

 BalanceAmount.setText(getIntent().getIntExtra("amount", 0)+"");

问题是,当您尝试为setText()提供int值时,系统会查找具有该int id的资源文件。它可能无法理解int值和int res之间的区别(R.String.someValue在android中被视为int)。

现在使用上面的代码,int现在转换为String,因此您不会有任何问题,当然您将两行代码减少为一行。

答案 1 :(得分:2)

TextView值应该是String,而不是int。

这是执行此操作的正确方法:

int iAmount = getIntent().getIntExtra("amount", 0); BalanceAmount.setText(String.valueOf(iAmount));

答案 2 :(得分:0)

更新Spinner使用View.invalidate()方法。

Adapter.notifyDatasetChanged()方法