我有一个标签活动。 它的1个选项卡包含一个包含片段项的listView。 我在这些列表项目上有一个按钮(这是片段),我想要点击它来显示一个弹出窗口。 不幸的是,我可以看到弹出窗口,我认为它是因为列表项的显示太小。 我真的希望在包含列表的活动中看到它。
有什么想法吗?
编辑: 对话框:
公共类CancelRunPupUp扩展DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getResources().getString(R.string.cancelRunTitle))
.setMessage(getResources().getString(R.string.AreYouSure))
.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
return dialog;
}
}
调用此对话框的按钮:
在公共类中,RowInHomeTab扩展了Fragment:
@覆盖 public View onCreateView(LayoutInflater inflater,ViewGroup容器, Bundle savedInstanceState){
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_row_in_home_tab, container, false);
ImageButton cancelRun = (ImageButton) view.findViewById(R.id.cancelRunButton);
cancelRun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CancelRunPupUp dialog = new CancelRunPupUp();
dialog.show(getFragmentManager(), "cancelRunDialog");
}
});
return view;
}
RowInHomeTab是listView中的一个项目,它放在tabActivity中。
答案 0 :(得分:0)
使用此对话框片段弹出窗口....
DFragment dFragment = new DFragment();
// Show DialogFragment
dFragment.show(fm, "Dialog Fragment");
答案 1 :(得分:0)
可能会有点“超大”,但您可以使用系统警报:
alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
但这需要
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
编辑: 好吧,似乎你已经将类型设置为SYSTEM_ALERT,然后我没有其他想法,但存储了您希望显示Dialog的活动的Context,并在Dialog类中使用此全局var而不是getActivity()。 但这很粘...... 包含列表视图的活动需要:
public static Context main_ctx;
@Override
protected void onCreate(Bundle savedInstanceState) {
main_ctx = this;
[...]
你的对话片段:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder([YOUR CLASS NAME].main_ctx);
编辑:
上次尝试
getActivity().runOnUiThread(new Runnable() {
public void run() {
CancelRunPupUp dialog = new CancelRunPupUp();
dialog.show(getFragmentManager(), "cancelRunDialog");
}
});