2014-04-14 2 views
0

나는 활동과 팝업 창을 구현하는 클래스가 있습니다. this 자습서를 사용하여 팝업을 구현했습니다. init() 및 popupInit() 메서드를 activity에서 호출하고 다른 모든 것은 클래스에 있습니다. 내 문제는 팝업이 표시되지 않는다는 것입니다. 매우 중요하므로다른 클래스의 팝업 창 표시 Android

public class PopupAudio implements OnClickListener { 

    LinearLayout layoutOfPopup; 
    PopupWindow popupMessage; 
    Button popRecord, popStopRecord, popPlay, popStopPlaying; 
    TextView popupText; 

    public void popupInit() { 
     popRecord.setOnClickListener(this); 
     popStopRecord.setOnClickListener(this); 
     popPlay.setOnClickListener(this); 
     popStopPlaying.setOnClickListener(this); 
     popupMessage = new PopupWindow(layoutOfPopup, LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT); 
     popupMessage.setContentView(layoutOfPopup); 
    } 

    public void init(Context context) { 
     popRecord = new Button(context); 
     popRecord.setId(112); 
     popStopRecord = new Button(context); 
     popPlay = new Button(context); 
     popStopPlaying = new Button(context); 
     layoutOfPopup = new LinearLayout(context); 
     popRecord.setText("REC"); 
     layoutOfPopup.setOrientation(1); 
     layoutOfPopup.addView(popRecord); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch(v.getId()) { 
     case 112: 

      break; 
     } 
    } 

} 

그것은 학교 프로젝트입니다 : 여기

팝업 클래스입니다. 제발 도와주세요, 고맙겠습니다 :)

+1

팝업의 ** [변형] (http://developer.android.com/reference/android/widget/PopupWindow.html#showAsDropDown (android.view.View)) ** **를 사용 하시겠습니까? show()'somwhere – codeMagic

+0

이 막 'Show()'를 놓칠지도 모른다라고 말하려고했다. @codeMagic 그것을 가지고 – john

답변

0

의 팝업을 보여주는 이벤트를 필요로 할 때마다 또는 필요할 때마다 호출해야합니다. Here are the different methods from the docs

Here is one example은 을 사용한다.

showAsDropDown(View anchor)은 필요에 따라 가장 간단 할 수 있습니다. 첨부하려는 view을 그냥 전달하십시오. 하지만 다른 두 가지 기능은 유연성을 제공합니다.

+0

나는 this.findViewById (R.layout.activity_note) 및 나는 popupMessage.showAsDropDown (앵커)를 사용하여 활동에서 볼 수 있습니다; 하지만 날 nullpointer 예외를 던졌습니다 – user3132352

+0

어딘가에 팝업 창을 초기화해야합니다. 다른 클래스에서는이 작업을 수행하지만보기를 반환하지 않으므로 어디서든 초기화되지 않습니다. 자습서에서는 다음과 같이 활동 클래스에서 모두 수행합니다. – codeMagic