Java 创建扩展PopupWindow的自定义弹出类

Java 创建扩展PopupWindow的自定义弹出类,java,android,popup,Java,Android,Popup,我想创建一个Android应用程序,它有一个Main类和一个CustomPopup类 在主活动中,用户可以在文本字段中输入消息,当按下“生成弹出窗口”按钮时,消息在屏幕上显示为弹出窗口。弹出窗口必须是可移动的(在屏幕上拖动) 到目前为止,我在代码方面确实需要帮助 自定义弹出类 public class CustomPopup extends PopupWindow { private String message; private Double anchorX; private Doubl

我想创建一个Android应用程序,它有一个Main类和一个CustomPopup类

在主活动中,用户可以在文本字段中输入消息,当按下“生成弹出窗口”按钮时,消息在屏幕上显示为弹出窗口。弹出窗口必须是可移动的(在屏幕上拖动)

到目前为止,我在代码方面确实需要帮助

自定义弹出类

public class CustomPopup extends PopupWindow {

private String message;
private Double anchorX;
private Double anchorY;

PopupWindow popup;


public CustomPopup(String message) {
super();
this.message = message;

}

public void showPopup(Activity context)
{
LayoutInflater inflater = (LayoutInflater)context.getSystemService
  ( Context.LAYOUT_INFLATER_SERVICE);
}
}
public class MainActivity extends AppCompatActivity {

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

EditText messageTxt = (EditText) findViewById(R.id.messageTxt);
Button generateBtn = (Button) findViewById(R.id.generateBtn);

String message = messageTxt.getText().toString();

 final CustomPopup popup = new CustomPopup(message);

generateBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        popup.showPopup();



    }
});


}
} 
主类

public class CustomPopup extends PopupWindow {

private String message;
private Double anchorX;
private Double anchorY;

PopupWindow popup;


public CustomPopup(String message) {
super();
this.message = message;

}

public void showPopup(Activity context)
{
LayoutInflater inflater = (LayoutInflater)context.getSystemService
  ( Context.LAYOUT_INFLATER_SERVICE);
}
}
public class MainActivity extends AppCompatActivity {

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

EditText messageTxt = (EditText) findViewById(R.id.messageTxt);
Button generateBtn = (Button) findViewById(R.id.generateBtn);

String message = messageTxt.getText().toString();

 final CustomPopup popup = new CustomPopup(message);

generateBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        popup.showPopup();



    }
});


}
} 

我使用的是PopullPer类,您可以使用以下代码:

public类popper{
静态对话框;
公共静态void showDialog(活动活动,PINConfirmButtonClickListener操作){
if(dialog!=null&&dialog.isShowing()){
布尔isShowing=dialog.isShowing();
返回;
}
dialog=新建对话框(活动,R.style.MyAlertDialogStyle);
对话框.requestWindowFeature(窗口.FEATURE\u无\u标题);
setContentView(R.layout.(您的对话框布局);
对话框。setCanceledOnTouchOutside(true);
对话框。可设置可取消(true);
dialog.show();
dialog.findviewbyd(R.id.cancel_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
action.onPositiveClicked()
“你的行动在这里”
}
});
dialog.findviewbyd(R.id.cancel_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
行动
“你的行动在这里”
}
});
findViewById(R.id.close\u dialog\u rl).setOnClickListener(视图->操作.onclosebuttonclick(对话框));
findviewbyd(R.id.ressend\u code\u tv).setOnClickListener(view->action.onResendCodeClicked());
}
公共接口TwoButtonClickListener{
void onPositiveClicked(对话框);
void onNegativeClicked(对话框);
}

}
我使用的是PopucUpperClass,您可以使用以下代码:

public类popper{
静态对话框;
公共静态void showDialog(活动活动,PINConfirmButtonClickListener操作){
if(dialog!=null&&dialog.isShowing()){
布尔isShowing=dialog.isShowing();
返回;
}
dialog=新建对话框(活动,R.style.MyAlertDialogStyle);
对话框.requestWindowFeature(窗口.FEATURE\u无\u标题);
setContentView(R.layout.(您的对话框布局);
对话框。setCanceledOnTouchOutside(true);
对话框。可设置可取消(true);
dialog.show();
dialog.findviewbyd(R.id.cancel_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
action.onPositiveClicked()
“你的行动在这里”
}
});
dialog.findviewbyd(R.id.cancel_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
行动
“你的行动在这里”
}
});
findViewById(R.id.close\u dialog\u rl).setOnClickListener(视图->操作.onclosebuttonclick(对话框));
findviewbyd(R.id.ressend\u code\u tv).setOnClickListener(view->action.onResendCodeClicked());
}
公共接口TwoButtonClickListener{
void onPositiveClicked(对话框);
void onNegativeClicked(对话框);
}
}