총 게시물 39,202건, 최근 1 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

PopupWindow 내부에 Spinner를 넣었을 때 오류 질문

글쓴이 : KuRoN 날짜 : 2018-10-05 (금) 09:12 조회 : 626
글주소 : http://www.androidside.com/B49/170392
 
  SPINNER 쇼핑은 티몬
취미용품, 최신 인기 아이템, 손 끝에서 느껴지는 짜릿함! 멈출 수 없는 즐거움!
www.ticketmonster.co.kr
  도문유니버설
SPINNER 제품 부품/스페어파트를 수입판매 합니다.
domun.co.kr
  레스코 정식 수입 크루마이즈
애견용품 종합 쇼핑몰, 각종애견용품, SPINNER, 셀프미용정보 적립금/사은품!
www.kroomize.com
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

```
using static src.menuEvent.HardKeyMenuEvent.AdjustPopupEvent;
using static src.menuEvent.HardKeyMenuEvent.PowerPopupEvent;
using static src.menuEvent.HardKeyMenuEvent.BrilliancePopupEvent;
using System.Collections.Generic;

namespace Fec.Test
{
    [Activity(Label = "Fec.Test", Icon = "@drawable/icon", ScreenOrientation = ScreenOrientation.SensorLandscape)]
    public class RadarDispActivity : Activity
    {
    
        public static Spinner _Palett_Spinner;
        public static ArrayList _Palett_List;

       protected override void OnCreate(Bundle bundle)
        {
            instance = this;

            base.OnCreate(bundle);
            this.RequestWindowFeature(WindowFeatures.NoTitle); //Remove title bar

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.RadarDispMain);

            Initialize(this);
        }


        public override Boolean DispatchKeyEvent(KeyEvent e)
        {
            _Main_Fragment = FragmentManager.BeginTransaction();
            src.menu.MainTitle _Main_Title_Fragment = new src.menu.MainTitle();

            switch (e.KeyCode)
            {
                case Keycode.Num4:
                    if(e.Action == KeyEventActions.Down)
                    {
                        LayoutInflater _Brill_inflater = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService);
                        _Brill_Popup = _Brill_inflater.Inflate(Resource.Layout.Menu_Brill_Window, null);

                        BrillEvent();
                        
                    }
                    break;
                }

                    return false;
            }

            return false;
        }
        
```




```

using static Fec.Test.RadarDispActivity;

namespace src.menuEvent
{
    class HardKeyMenuEvent : AbstractDataInterface
    {
        public static class BrilliancePopupEvent
        {
            public static void BrillEvent()
            {
                PopupWindow _Brill_Window = new PopupWindow(_Brill_Popup, 500, 300);
                _Brill_Window.SetBackgroundDrawable(new BitmapDrawable());

                _Palett_Spinner = (Spinner)_Brill_Popup.FindViewById(Resource.Id._Palett_Spinner);
                _Palett_List = new ArrayList { "Day", "Dusk", "Night" };
                _Palett_Spinner.Adapter = new ArrayAdapter(instance, Resource.Layout.Custom_Spinner, Resource.Id._Custom_Spinner_Text, _Palett_List);

            }
        } 

```


간략하게 요런 코드가 있습니다
그런데 HardKey에 4번을 눌러 PopupWindow를 오픈한 후 스피너를 누르려고 하면

Android.Views.WindowManagerBadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@38e83929 is not valid; is your activity running?

이러한 에러가 발생합니다.

Spinner의 Mode 옵션을 DropDown이 아닌 Dialog로 주면 해결이 되긴 하는데
그렇게 되면 Dialog의 폭 크기를 어떻게 줄이는지를 모르겠습니다.

두 가지에 대한 해결법을 알 수 있을까요?

 1. Spinner의 Mode 옵션을 Dialog로 주지 않고 DropDown으로 주었을 때 해결 할 수 있는 방법
 2. Spinner의 Mode 옵션을 Dialog로 주었을 때, Dialog창의 Width 와 Height를 조절할 수 있는 방법

부탁드립니다!



질문자가 자신의 포인트 10 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 8을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

에찌 2018-10-10 (수) 10:39
우선 2번째는 Dialog 를 생성하기전에 컨트롤 가능합니다.
http://arabiannight.tistory.com/entry/350
여기에 나와있는것처럼 MATCH 를 사용하거나 원하는크기를 넣어도 되는거죠.

그리고 첫번째와 같은 경우는 좀 의문인게 spinner 를 다이얼로그형태로 표현하려면 Custom Dialog 방식으로 내부에 spinner 를 넣으면 되지않을까요..?
댓글주소 추천 0 반대 0
     
     
KuRoN 2018-10-10 (수) 10:52
[@에찌] 첫번쨰 같은 경우, Dialog가 아닌 PopupWindow 안에 Spinner를 DropDown으로 넣고 싶을 때의 경우입니다. Dialog와는 무관한...
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기