2

我正在阅读我的数据库Activity A- Fetching String, int, String. 我将它传递给Activity B并希望在 3 个文本字段中显示它的String值得到正确显示,但是int给了我这个错误

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

我的代码

活动一

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));

BalanceAmount是该字段Integer,我在那里得到空白值。另外,我的第三个String是要填充在 Spinner 中吗?有人可以告诉我填充它的代码吗?

谢谢!

4

3 回答 3

6

试试这个,

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

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

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

于 2013-01-03T10:16:10.017 回答
2

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

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

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

于 2013-01-03T10:25:21.367 回答
0

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

或者Adapter.notifyDatasetChanged()方法

于 2013-01-03T10:18:21.093 回答