标签: android-dialog

如何从PreferenceScreen上的文本条目打开对话框?

在我的Android应用程序中,如果用户在PreferenceScreen中选择看起来像纯文本的内容,我想显示一个Dialog.我已经看过如何从首选项屏幕打开AlertDialog?,但该解决方案从CheckBoxPreference启动.

在我的情况下,我想从看起来像TextView(或者我认为它可能是一个按钮)的东西启动,然后它将导致我已经拥有的"关于"对话框.有什么建议怎么做?谢谢.

android android-preferences android-dialog

9
推荐指数
1
解决办法
4657
查看次数

android中不推荐使用类型为Activity的showDialog(int)方法吗?

该方法showDialog(int)从类型Activity弃用.

在此输入图像描述

什么原因?以及如何解决?

android dialog android-dialog

9
推荐指数
1
解决办法
3万
查看次数

创建新对话框时出现NullPointerException

我有一个DialogFragment创建一个listview对话框,在列表项上单击我想显示一个警告对话框,但是当我创建对话框时,它给了我一个NullPointerException我从未见过的错误

08-05 11:40:42.315: E/AndroidRuntime(4693): java.lang.NullPointerException
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.tyczj.bowling.dialogs.SeasonType$1$1.onClick(SeasonType.java:60)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.os.Looper.loop(Looper.java:137)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.ActivityThread.main(ActivityThread.java:4745)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at java.lang.reflect.Method.invoke(Method.java:511)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的对话框 onCreate

@Override
public Dialog onCreateDialog(Bundle state){
    final Dialog d = …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-dialog

9
推荐指数
1
解决办法
1万
查看次数

对话框关闭时隐藏软输入键盘

我正在打开Dialog一个Activity.对话框打开后,我打电话

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
Run Code Online (Sandbox Code Playgroud)

问题是,当我通过点击取消按钮或单击对话框外部关闭对话框时,键盘切换到文本键盘并且不会消失工具我单击硬件返回按钮.如何在关闭对话框时关闭键盘,并将焦点返回到上一个窗口?

android android-softkeyboard android-dialog

9
推荐指数
2
解决办法
5476
查看次数

如何使用默认的AlertDialog以编程方式添加TextView和EditText

我一直在尝试在默认的AlertDialog中添加两个元素,但我似乎无法使它工作.这是我的代码:

// START Dialog
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

    TextView tv = new TextView(this);
    tv.setText(title);
    tv.setPadding(40, 40, 40, 40);
    tv.setGravity(Gravity.CENTER);
    tv.setTextSize(20);

    EditText et = new EditText(this);
    etStr = et.getText().toString();

    alertDialogBuilder.setView(et);
    alertDialogBuilder.setTitle(title);
    alertDialogBuilder.setMessage("Input Student ID");
    alertDialogBuilder.setCustomTitle(tv);

    if (isError)
        alertDialogBuilder.setIcon(R.drawable.icon_warning);
    // alertDialogBuilder.setMessage(message);
    alertDialogBuilder.setCancelable(false);

    // Setting Negative "Cancel" Button
    alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            dialog.cancel();
        }
    });

    // Setting Positive "Yes" Button
    alertDialogBuilder.setPositiveButton("OK",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    if (isError)
                        finish();
                    else …
Run Code Online (Sandbox Code Playgroud)

android textview android-edittext android-alertdialog android-dialog

9
推荐指数
1
解决办法
2万
查看次数

Android L循环显示对话框

我试图在a上创建一个循环显示Dialog.我会认为,你将能够获得ViewonCreateDialog,隐藏它,然后用它揭示ViewAnimationUtils.createCircularReveal.

View由于出现requestWindowFeature()错误,我遇到了问题,我似乎无法解决.

您如何将材料设计动画应用于对话框?

编辑

我已成功通过将代码应用于dismiss()方法来隐藏对话框.但是当我试图通过循环显示来显示时,视图保持不可见.

android-animation android-dialog android-dialogfragment material-design android-5.0-lollipop

9
推荐指数
1
解决办法
5427
查看次数

如何以编程方式将活动主题化为对话框?

如何以编程方式(不触摸AndroidManifext.xml)设置主题Activity ,使其看起来像一个对话框

注意:我可以修改它AndroidManifext.xml,只要它不需要修改就可以在看起来像普通活动或对话框之间切换.

到目前为止我尝试过的

我根据这个stackoverflow答案尝试了以下内容:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        Log.d(TAG,"Build.VERSION.SDK_INT: "+Build.VERSION.SDK_INT); // 23
    }
}
Run Code Online (Sandbox Code Playgroud)

但它最终会在背景中消除掉一切.

我也看到了这个stackoverflow的答案,并试过:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    }
}
Run Code Online (Sandbox Code Playgroud)

但它最终使一切变黑.

做什么?谢谢.

java android android-dialog android-activity

9
推荐指数
1
解决办法
6095
查看次数

将ConstraintLayout与自定义Android对话框一起使用

我正在通过扩展Dialog并使用setContentView()创建自定义Dialog.问题是,当我尝试显示对话框时,它只显示背景阴影而不是我的自定义布局.我已经设法通过将它包装在RelativeLayout中来显示自定义布局,但我想知道是否有更好的解决方案或我做错了什么.使用constraintLayout版本1.0.2.谢谢!

这是我的自定义对话框:

class EventsFilterDialog(context: Context): Dialog(context) {
    init {
        setContentView(R.layout.dialog_events_filter)
        setCancelable(true)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的R.layout.dialog_events_filter的简化版本,它具有完全相同的结果:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/headerTv"
        android:text="@string/events_filters"
        android:textColor="@color/white"
        android:textSize="18sp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="@color/colorPrimaryLight"
        android:padding="16dp"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

    <View
        android:id="@+id/middleView"
        android:layout_width="0dp"
        android:layout_height="256dp"
        app:layout_constraintTop_toBottomOf="@+id/headerTv"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

    <TextView
        android:id="@+id/closeTv"
        android:text="@string/close"
        android:textColor="@color/white"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:gravity="center"
        android:background="@color/colorPrimaryLight"
        android:layout_width="0dp"
        android:layout_height="48dp"
        app:layout_constraintTop_toBottomOf="@+id/middleView"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/applyTv" />

    <TextView
        android:id="@+id/applyTv"
        android:text="@string/apply_filter"
        android:textColor="@color/white"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:gravity="center"
        android:background="@color/colorAccent"
        android:layout_width="0dp"
        android:layout_height="48dp"
        app:layout_constraintTop_toBottomOf="@+id/middleView"
        app:layout_constraintLeft_toRightOf="@+id/closeTv"
        app:layout_constraintRight_toRightOf="parent"/>

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

android android-dialog android-constraintlayout

9
推荐指数
1
解决办法
5073
查看次数

在状态栏下方显示DialogFragment内容

我试图显示一个带有match_parent的DialogFragment高度和宽度,但它发生在顶部,DialogFragment显示在StatusBar下面.

DialogFragment在底部,右侧,左侧和顶部应用了一些默认值.但顶部填充应从statusBar开始计数,而不是从总屏幕大小开始计算.

如何将DialogFragment设置为match_parent,但是在顶部,底部,右侧,左侧具有正常/默认填充?

android android-dialog android-windowmanager android-dialogfragment android-window

9
推荐指数
1
解决办法
4908
查看次数

使用ConstraintLayout作为DialogFragment的根布局时的奇怪行为

我正在构建一个使用a的自定义对话框DialogFragment.我注意到非常奇怪的行为,各种ViewGroup用作对话框布局的根.我认为这是由于系统窗口之间的一些奇怪的交互以及它如何显示对话框.在这个特定的实例中,我使用a ConstraintLayout作为布局的根视图.

显示时,对话框将延伸到屏幕边缘,Layout Inspector显示测量宽度超过16,000,000.甚至更奇怪的是ConstraintLayout定义填充,仍然可以在屏幕上看到.

下面是对话框的类:

public class AgreementDialog extends DialogFragment {

    // Bindings..

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.dialog_agreement, container);
        ButterKnife.bind(this, view);

        return view;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是布局,dialog_agreement:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#fff"
    android:padding="@dimen/margin_large"
    android:layout_margin="@dimen/margin_xlarge"
    >

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />


    <TextView
        android:id="@+id/description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/margin_standard"
        android:text="this is some text. "
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toEndOf="@id/checkbox"
        />

    <TextView
        android:id="@+id/id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/margin_large"
        android:text="123456789"
        app:layout_constraintBottom_toTopOf="@+id/negative" …
Run Code Online (Sandbox Code Playgroud)

android android-dialog android-dialogfragment android-constraintlayout

9
推荐指数
1
解决办法
765
查看次数