标签: dialogfragment

将数据从DialogFragment返回到适配器

我正在尝试使用一个接口将数据从a返回DialogFragmentArrayAdapter它所显示的数据.

我在这里读过类似的东西,但我不知道如何调用DialogFragment返回数据的函数.

有人可以帮忙吗?

MyDialog.java

public class MyDialog extends DialogFragment {  

    static interface Listener {
        void returnData(int result);
    }

    /* ... */

    @Override
    public void onActivityCreated (Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);        

        mBtnSubmit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                // How can I call PCListAdapter.returnData ?

                dismiss();              
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

PCListAdapter.java

public class PCListAdapter extends ArrayAdapter<PC> implements MyDialog.Listener {

    /* ... */

    public void showCommentDialog() {

        FragmentManager fm = ((Activity)mContext).getFragmentManager();
        MyDialog …
Run Code Online (Sandbox Code Playgroud)

android interface adapter dialogfragment

8
推荐指数
1
解决办法
4046
查看次数

从“底部工作表”对话框片段中获取价值

我从片段A开始bottomSheetDialogFragment。我想从该bottomSheetDialogFragment中选择日期,然后将其设置在片段A中。

选择日期已经完成,我只想将其放在片段A中以在某些字段中进行设置。

我如何获得价值?有什么建议怎么做吗?

android fragment dialogfragment bottom-sheet

8
推荐指数
3
解决办法
4072
查看次数

如何在onstop()中安全地解除DialogFragment?

我需要在FragmentActivity的onStop()中解除DialogFragment,如果它正在显示,这就是我做的

if(mAlertDlg != null && mAlertDlg.getDialog() != null)
        mAlertDlg.dismiss();
Run Code Online (Sandbox Code Playgroud)

但我通常得到IllegalStateException.那么请告诉我为什么代码错了,在onStop()中解除DialogFragment的正确方法是什么?谢谢.

android android-dialogfragment dialogfragment

7
推荐指数
2
解决办法
9971
查看次数

如何在 BottomSheetDialogFragment 顶部显示另一个片段

有什么办法可以在上面显示片段吗DialogFragment?当我BottomSheetDialogFragment在某些操作后显示时,我需要显示另一个片段(不是对话框片段的类型)而不关闭该对话框,我尝试从对话框中删除暗淡效果并隐藏视图,但这不好,对话框片段是不可见,但是,它的顶部是钢制的,按背面键首先会删除这个不可见的对话框,我需要实现的是正常的后堆栈顺序,就像“正常”片段一样

android fragment dialogfragment android-bottomsheetdialog

7
推荐指数
1
解决办法
1712
查看次数

如何将DialogFragment移出中心?

是否可以通过使用a DialogFragment将其移出中心并将其放置在屏幕上的任何位置?

android fragment dialogfragment

6
推荐指数
2
解决办法
3485
查看次数

在传递Android DialogFragment参数时,onCreateDialog bundle agument意外地为null

我正在尝试使用DialogFragment在Android中显示一个基本对话框,使用对话框消息的参数,如StackOverflow线程DialogFragment文档中所述.我的问题是onCreateDialog中的Bundle参数savedInstanceState始终显示为null,这意味着该活动显示一个空对话框而不是带有消息的对话框.如何从newInstance工厂方法获取非null的bundle内容以显示在onCreateDialog中?或者我只是遗漏了别的东西?

我从文档中看到的唯一重要区别是我使用的是非静态类.我希望积极的对话框按钮取决于消息的内容,所以这是故意的.

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;

public class SampleDialog extends DialogFragment {
    public static final String DIALOG_MESSAGE = "dialogMessage";

    private String dialogMessage;

    // arguments are handled through factory method with bundles for lifecycle maintenance
    public SampleDialog(){
    }

    public static SampleDialog newInstance(String dialogMessage){
        SampleDialog fragment = new SampleDialog();
        Bundle args = new Bundle();
        args.putString(DIALOG_MESSAGE, dialogMessage);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        if(savedInstanceState != null) {
            dialogMessage = …
Run Code Online (Sandbox Code Playgroud)

java android bundle dialogfragment

6
推荐指数
1
解决办法
5585
查看次数

如何在DialogFragment中设置分钟间隔

我试图在android中设置一个10分钟的间隔DialogFragment(由谷歌建议),但我真的找不到办法做到这一点.

这是显示对话框的片段类:

public class TimePickerFragment extends DialogFragment
        implements TimePickerDialog.OnTimeSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

        String realMinute= "";

        switch (minute) {
            case 1:
                realMinute = …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-dialogfragment dialogfragment

6
推荐指数
1
解决办法
964
查看次数

Appcompact DialogFragment单选复选标记颜色

我有个问题.我的活动有风格

<style name="MaterialTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/action_bar_background</item>
    <item name="colorPrimaryDark">@color/action_bar_background</item>
    <item name="colorAccent">@color/action_bar_background</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我也有一个简单的单选择选择器的dialogFragment.

@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
    final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
    dialog.setTitle(R.string.image_resolution);
    dialog.setSingleChoiceItems(R.array.quality_labels, getPosition(), this);
    return dialog.create();
}
Run Code Online (Sandbox Code Playgroud)

如何更改选择器复选标记的颜色(绿色圆圈)???在此输入图像描述

android picker android-appcompat dialogfragment

6
推荐指数
2
解决办法
3785
查看次数

如何将 windowFixedHeightMinor/Major 与 DialogFragment 一起使用

我试图windowFixedHeightMinor与自定义结合使用DialogFragment来创建固定大小(实际上按比例大小)的对话框。

我正在我的主题中设置主题onCreate

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(STYLE_NORMAL, R.style.MyDialog);
}
Run Code Online (Sandbox Code Playgroud)

主题:

<style name="MyDialog" parent="Base.Theme.AppCompat.Light.Dialog.FixedSize">
    <item name="android:windowBackground">@color/light_blue</item>
    <item name="android:windowMinWidthMajor">80%p</item>
    <item name="android:windowMinWidthMinor">80%p</item>
    <item name="windowFixedHeightMinor">80%p</item>
    <item name="windowFixedHeightMajor">80%p</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我可以看到它被应用到我的对话框(这就是设置背景的原因)并且 windowMinWidthMajor 被应用,因为对话框大约是屏幕尺寸的 80%。但是,对话框始终占据屏幕的整个高度。

对话框本身显示:

MyDialogFragment.newInstance().show(getFragmentManager(), "dialog");
Run Code Online (Sandbox Code Playgroud)

主要供参考,对话框本身如下所示,尽管我尝试从其中剥离几乎所有内容并获得类似的结果。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button
        android:text="@string/accept"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/done"

        android:layout_margin="16dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        />

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_above="@id/done"
        >

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >

            <RadioButton
                android:text="Pink"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/pink"
                android:layout_weight="1" />

            <RadioButton
                android:text="Purple"
                android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android dialogfragment

6
推荐指数
0
解决办法
986
查看次数

Android:支持 DialogFragment 未显示自定义布局

我的应用程序中有一个DialogFragment( android.support.v4.app.DialogFragment)的子类,它可以正常工作很长时间。对话框本身是在onCreateDialog()回调中构造的。

但是,现在我想转换到新的对话框布局并决定构建一个完全自定义的对话框。据我所知,这需要删除回调中onCreateDialog()View层次结构的覆盖和膨胀onCreateView()。我这样做了。

由此产生的行为很奇怪——当需要显示对话框时,屏幕变暗,但没有显示对话框的布局(“后退”按钮的行为也与对话框的功能一致):

在此处输入图片说明

我试图恢复到旧的实现(使用onCreateDialog()回调) - 它仍然有效。

我的问题是:我做错了什么?

对话框的代码:

/**
 * A dialog that can show title and message and has two buttons. User's actions performed
 * in this dialog will be posted to {@link EventBus} as {@link PromptDialogDismissedEvent}.
 */
public class PromptDialog extends BaseDialog {


    /* package */ static final String ARG_TITLE = "ARG_TITLE";
    /* package */ static final String ARG_MESSAGE = "ARG_MESSAGE";
    /* package */ …
Run Code Online (Sandbox Code Playgroud)

android android-dialogfragment dialogfragment

6
推荐指数
1
解决办法
2601
查看次数