마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Android 스피너 질문합니다

0 추천
Spinner spinner;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        spinner=(Spinner)this.findViewById(R.id.spinner1);
        ArrayAdapter sAdapter=
            ArrayAdapter.createFromResource(
            MainActivity.this, R.array.city,
            android.R.layout.simple_spinner_item);
        sAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(sAdapter);

            spinner.setOnItemSelectedListener(new OnItemSelectedListener(){

                    @Override
                    public void onNothingSelected(AdapterView<?> p1)
                    {
                        // TODO: Implement this method
                    }


           

               
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                                           int arg2, long arg3) {
                    switch(arg2){
                        case 0:
                            NotificationManager mNotificationManager =
                                (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                            stopForeground(true);
                            mNotificationManager.cancel(3452);
                            Notification.Builder mBuilder =
                                new Notification.Builder(MainActivity.this)
                                .setSmallIcon(R.drawable.skt)
                                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
                                .setContentTitle("추노마크")
                                .setPriority(Notification.PRIORITY_MAX)
                                .setOngoing(true)
                                .setContentText("SKT");


                            Intent resultIntent = new Intent(getApplicationContext(),MainActivity.class);

                            TaskStackBuilder stackBuilder = TaskStackBuilder.create(MainActivity.this);
                            stackBuilder.addParentStack(MainActivity.class);
                            stackBuilder.addNextIntent(resultIntent);

                            PendingIntent resultPandingIntent =
                                stackBuilder.getPendingIntent(
                                0,
                                PendingIntent.FLAG_UPDATE_CURRENT
                            );

                            mBuilder.setContentIntent(resultPandingIntent);
                            mNotificationManager.notify(3452, mBuilder.build());
                            startForeground(mBuilder, new Notification());
                            break;
                        case 1:
                            mNotificationManager =
                                (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                            stopForeground(true);
                            mNotificationManager.cancel(3452);
                            mBuilder =
                                new Notification.Builder(MainActivity.this)
                                .setSmallIcon(R.drawable.kt)
                                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
                                .setContentTitle("추노마크")
                                .setPriority(Notification.PRIORITY_MAX)
                                .setOngoing(true)
                                .setContentText("Olleh");

                            resultIntent = new Intent(getApplicationContext(),MainActivity.class);

                            stackBuilder = TaskStackBuilder.create(MainActivity.this);
                            stackBuilder.addParentStack(MainActivity.class);
                            stackBuilder.addNextIntent(resultIntent);

                            resultPandingIntent =
                                stackBuilder.getPendingIntent(
                                0,
                                PendingIntent.FLAG_UPDATE_CURRENT
                            );

                            mBuilder.setContentIntent(resultPandingIntent);
                            mNotificationManager.notify(3452, mBuilder.build());
                            startForeground(mBuilder, new Notification());
                            break;
                        case 2:
                            mNotificationManager =
                                (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                            stopForeground(true);
                            mNotificationManager.cancel(3452);
                            mBuilder =
                                new Notification.Builder(MainActivity.this)
                                .setSmallIcon(R.drawable.lgu)
                                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
                                .setContentTitle("추노마크")
                                .setPriority(Notification.PRIORITY_MAX)
                                .setOngoing(true)
                                .setContentText("LG U+");

                            resultIntent = new Intent(getApplicationContext(),MainActivity.class);

                            stackBuilder = TaskStackBuilder.create(MainActivity.this);
                            stackBuilder.addParentStack(MainActivity.class);
                            stackBuilder.addNextIntent(resultIntent);

                            resultPandingIntent =
                                stackBuilder.getPendingIntent(
                                0,
                                PendingIntent.FLAG_UPDATE_CURRENT
                            );

                            mBuilder.setContentIntent(resultPandingIntent);
                            mNotificationManager.notify(3452, mBuilder.build());
                            startForeground(mBuilder, new Notification());
                            break;
                        });}
                }


일단 제가 원하는거는요..
Ok 라는 onclick을 가진 버튼을 누르면 스피너에서 고른것에 따라서 실행하는게 다르도록 하고싶습니다..구현은 됬는데 이 액티비티가 실행되자마자 case 0을 받아서 처리해버리네요..스피너에서 다른걸 고르면 그것대로 case1이나 뭐 기타등등이 잘 실행됩니다.. 액티비티가 켜지자마자가 아닌 버튼을 누른 뒤에 case가 실행되게하려면 어떻게해야할까요.
인생을루팅한고1 (120 포인트) 님이 2016년 2월 20일 질문

1개의 답변

0 추천
boolean 값을 하나 만들어서

최초 리스너가 동작 했을 시에는 무시하도록 하면 될 것 같습니다.
마리노 (3,320 포인트) 님이 2016년 2월 24일 답변
...