0

これは単純だと確信しており、見落としているか愚かなことをしているだけですが、多くの入力をデータベースに保存しています.1つはスピナーで選択されたオプションであり、次を使用してテキストとして保存しています。

idCategory = (add_category_spinner.getSelectedItemPosition() + " Position");

今、別のアクティビティで、別のスピナーをまったく同じ選択に設定しようとしています。私はこれを使用してやっています:

private String CategoryPosition

onCreate(...etc)

update_category_spinner = (Spinner) findViewById(R.id.update_category_spinner);
    ArrayAdapter<CharSequence> category_adapter = ArrayAdapter.createFromResource(
            this, R.array.category_array, android.R.layout.simple_spinner_item);

    category_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    update_category_spinner.setAdapter(category_adapter);

bundleduCategPos = takeBundledData.getString("clickeduCategPos");

CategoryPosition = String.valueOf(bundleduCategPos.charAt(0));
update_category_spinner.setSelection(Integer.parseInt(CategoryPosition)); 

その特定のアクティビティを開こうとすると、次の logcat エラーが発生します。

java.lang.NumberFormatException: Invalid int: "N"

DB に保存されたスピナーの選択に応じて、その「無効な int」文字が変わる可能性があります。基本的に、データベース全体が文字列のセットとして保存されるため、追加のテキスト

".getSelectedItemPosition() + " Position");"

私はそれを引き込んでcharに変換し、スピナー選択のpositionIdである必要がある最初のゼロインデックス文字を見つけ、それをintに戻し、最後にそのintを使用して新しいスピナーに選択を設定します。同じ配列から読み取ります。

唖然とした支援をお願いします。

4

1 に答える 1

0

解決しました...貢献した2つの異なる問題を見つけました。問題 1 - 最初に int に変換せずに文字列を入力すると、選択が行われませんでした。選択が実際に行われていることに気付きましたが、以前のようには見えませんでした

update_category_spinner.setSelection(Integer.parseInt(CategoryPosition));

それ以外の

update_category_spinner.setSelection(Integer.parseInt(CategoryPosition), true);

次の問題では、3 つのスピナーがあり、3 つのセットを保存していたため、NumberFormatException が発生していました。

getSelectedItemId();

私のDBに、そしてそれらを呼び戻します。誤って間違った列から Id の 1 つを呼び出していたので、

CategoryPosition = String.valueOf(bundleduCategPos.charAt(0));

上記の例では「N」であった文字列配列から選択された文字列の最初の文字を返していました。

于 2012-07-28T03:34:56.257 に答える