0

オプションを選択するとアクティビティが開きますが、そのアクティビティを終了してスピナー アクティビティに戻ると、スピナーはまだ開いています。

アイテムを選択した直後にそれを閉じるにはどうすればよいですか?

sp.setOnItemSelectedListener(new OnItemSelectedListener() {
            boolean firstPop =true;
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int pos, long arg3) {
                if (!firstPop) {

                    doMyLogic();
                    sp.????
                }
                firstPop = false;

            }

完全なコードを編集する

public void showDropDownDialogue() {

        String[] s = getResources().getStringArray(R.array.cities);
        final ArrayAdapter<String> adp = new ArrayAdapter<String>(
                MainActivity.this, android.R.layout.simple_spinner_item, s);

        final Spinner sp = new Spinner(MainActivity.this);
        sp.setPadding(5, 5, 5, 5);
        sp.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        sp.setAdapter(adp);


        sp.setOnItemSelectedListener(new OnItemSelectedListener() {
            boolean firstPop =true;

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int pos, long arg3) {
                if (!firstPop) {
                    editor.putInt("city_id", pos);
                    editor.commit();
                    Intent stationsIntent = new Intent(MainActivity.this,
                    StationsActivity.class);
                    startActivity(stationsIntent);


                }
                firstPop = false;

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setView(sp);
        builder.create().show();

    }
4

2 に答える 2

2

スピナーではなく、閉じる必要のあるダイアログです。したがって、AlertDialogをフィールドとして宣言します

変更ダイアログは以下のように表示されます。

builder.setView(sp);
dialog = builder.create();
dialog.show();

そしてonItemSelectedに追加

dialog.dismiss();
于 2012-12-15T18:10:56.143 に答える
1

OnItemSelectedListener を実装し、onItemSelected メソッドをオーバーライドして、スピナーの選択されたイベントを取得します。それは閉じます。プログラムで閉じる必要はありません

心配する必要はありません。自動的に閉じます。

于 2012-12-15T17:53:37.037 に答える