0

アプリケーションでスピナーを使用しています。スピナーでインデックスを選択した後、開きます

新しいアクティビティを開始してから、最初のアクティビティに戻ります。今、私のスピナーは以前に選択された値を表示しており、同じインデックスを再度選択しても何も起こりません。

ドキュメントにはonItemSelectedListener、インデックスが以前のものと異なる場合に呼び出すと書かれています。また、戻ってきたときにデフォルト(0)に設定できません。

これを行うための代替ソリューションはありますか?私を助けてください。ありがとう。これが私のコードです:

companyspin.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onNothingSelected(AdapterView<?> arg0) {
            }

            public void onItemSelected(AdapterView<?> arg0,
                    android.view.View arg1, int arg2, long arg3) {
                Object o = companyspin.getSelectedItem();
                network = CheckNetworkStateReceiver.isOnline(context);
                selectCompany = o.toString().trim();
                Data.homeCommunityValue = arg2;
                setCompanyList(arg2);
                flagCatageory = false;
                try {
                    tracker.trackEvent("Home", // Category
                            "Drop Down Selection", // Action
                            selectCompany, // Label
                            arg2); // Value
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });``
4

2 に答える 2

0

スピナーで選択するとすぐに新しいアクティビティを開始しますか?

onItemSele.... リスナーでアクティビティに必要なスピナーからデータを取得するだけです。設定 mySpinner.setSelection(your_position)

あなたの新しい活動が始まる前に。スピナーで同じ値のままにしたい場合は、選択を有効にするボタンの方が簡単に見え、選択の内容によってはユーザーにとってエラーが発生しにくくなります。

編集: 選択はその後も同じであるため、コールバックは決して発生しません。setSelection を使用して、有効な選択の後に戻ることができる情報テキスト「Choose here...」を使用して、プラセボ オブジェクトを位置 (0) に配置できます。それが有効な選択かプラセボかどうか、リスナーにチェックを追加するだけです。

于 2012-04-20T11:41:29.463 に答える
0

メインアクティビティに戻ったときに最初のアイテムを選択したいので、試すことができます

companyspin.setSelection(0);

onCreate()主な活動中。

于 2012-04-24T07:01:44.590 に答える