从另一个Android类显示弹出窗口

时间:2014-04-14 19:06:14

标签: android class android-activity popup android-popupwindow

我有一个活动和一个实现弹出窗口的类。使用this教程我实现了弹出窗口。我从活动中调用方法init()和popupInit(),其他所有内容都在类中。我的问题是弹出窗口没有显示。

这是弹出类:

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 个答案:

答案 0 :(得分:0)

您需要调用一种方法来实际显示某些事件操作的弹出窗口或您需要的时间。 Here are the different methods from the docs

Here is one example使用showAtLocation()

showAsDropDown(View anchor)可能是最简单的,具体取决于您的需求。只需将它要附加到的view传递给它即可。但是,另外两个会给你更多的灵活性。