我正在Activity A
中阅读我的数据库 - 获取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
我的代码
活动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));
BalanceAmount
是Integer
字段,我在那里得到空白值。
另外,我的第三个String
将被填充在Spinner中?有人能告诉我填充它的代码吗?
谢谢!
答案 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()
方法