2

DB を読み込んでいます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

私のコード

活動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フィールドで、そこに空白の値が表示されます。また、私の 3 つ目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 に変換されるため、問題は発生しません。もちろん、2 行のコードを 1 行に減らしています。

于 2013-01-03T10:16:10.017 に答える
2

TextView値は、intではなくStringである必要があります。

これは、これを行うための適切な方法です。

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 に答える