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

PopupWindow TouchEvent 발생

+1 추천
/////////// A activity ////////////
Button calBtn = (Button)findViewById(R.id.market_SrCalBtn);
                calBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                PopupWindow popup = new PopupWindow(v);
                LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View view = inflater.inflate(R.layout.activity_calendar, null);
                popup.setContentView(view);
                popup.setWindowLayoutMode(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
                popup.setTouchable(true);
                popup.setFocusable(true);
                popup.setOutsideTouchable(true);
                popup.setBackgroundDrawable(new BitmapDrawable());
                popup.showAsDropDown(v);
            }
        });

/////////// B activity ////////////

public class CalendarActivity extends Activity {
 //   CalendarView calendar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calendar);


            Button btn = (Button)findViewById(R.id.buttontest);
                btn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // 이벤트 동작
            }
        });

제가 하고자 하는 바는 이렇습니다.

 

A액티비티에서 B액티비티를 PopupWindow로 띄운 후 B액티비티의 캘린더뷰에서 날짜를 선택하면 A액티비티의 변수에 값을 전달하려고 합니다.

 

현재 문제는 B액티비티를 띄우는 작업까지 마쳤으나 B액티비티에 있는 버튼이나 기타 이벤트들이 처리가 되고 있지 않습니다.

디버그를 해본 결과 버튼 이벤트 함수에도 접근을 못하고 있어서 이렇게 질문 남깁니다.

 

 

 

 

taeyoung7315 (190 포인트) 님이 2015년 2월 5일 질문

2개의 답변

0 추천
위 코드에는 B액티비티를 띄우는 코드가 전혀 없는데, B액티비티를 띄우는 작업을 마쳤다는게 무슨 말인가요?
익명사용자 님이 2015년 2월 5일 답변
0 추천
팝업윈도우 생성자에 왜 calBtn을 넣는거죠?

뭔가 생성 자체를 잘못하신 것 같습니다.

PopupWindow 생성할 때 순서를 다음과 같이 변경해보시기 바랍니다.

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = inflater.inflate(R.layout.activity_calendar, null);

PopupWindow popup = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);

popup.setContentView(view); <-- 요건 삭제

popup.setWindowLayoutMode(~~~~); <-- 요것도 삭제

그 아래쪽은 동일하게
Gradler (109,780 포인트) 님이 2015년 2월 5일 답변
...