标签: android-alertdialog

如何更改AlertDialog标题的颜色以及其下方的线条颜色

我使用此命令更改了AlertDialog标题的颜色

alert.setTitle( Html.fromHtml("<font color='#FF7F27'>Set IP Address</font>"));
Run Code Online (Sandbox Code Playgroud)

但我想改变标题下出现的线条的颜色; 我怎样才能做到这一点 ?

注意:我不想使用自定义布局

所需效果的屏幕截图

android android-alertdialog

107
推荐指数
5
解决办法
13万
查看次数

buider.show()上的"android.view.WindowManager $ BadTokenException:无法添加窗口"

从我的主要activity,我需要调用内部类和类中的方法,我需要显示AlertDialog.解除后,按下确定按钮后,转发到Google Play进行购买.

在大多数情况下,事情完美无缺,但对于少数用户而言,它正在崩溃builder.show(),我可以看到"android.view.WindowManager$BadTokenException:无法在崩溃日志中添加窗口.请建议.

我的代码非常像这样:

public class classname1 extends Activity{

  public void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.<view>); 

    //call the <className1> class to execute
  }

  private class classNamename2 extends AsyncTask<String, Void, String>{

    protected String doInBackground(String... params) {}

    protected void onPostExecute(String result){
      if(page.contains("error")) 
      {
        AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this);
        builder.setCancelable(true);
        builder.setMessage("");
        builder.setInverseBackgroundForced(true);
        builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton){
            dialog.dismiss();
            if(!<condition>)
            {
              try
              {
                String pl = ""; 

                mHelper.<flow>(<class>.this, SKU, RC_REQUEST, 
                  <listener>, …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

107
推荐指数
3
解决办法
11万
查看次数

如何实现自定义AlertDialog视图

AlertDialog上Android文档中,它提供了以下用于在AlertDialog中设置自定义视图的说明和示例:

如果要显示更复杂的视图,请查找名为"body"的FrameLayout并将视图添加到其中:

FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
Run Code Online (Sandbox Code Playgroud)

首先,非常明显的是这add()是一个错字,并且意味着addView().

我对使用R.id.body的第一行感到困惑.它似乎是AlertDialog的body元素......但是我不能在我的代码中输入它b/c它会产生编译错误.R.id.body在哪里被定义或分配或者其他什么?

这是我的代码.我试图setView(findViewById(R.layout.whatever)在构建器上使用但它没有用.我假设因为我没有手动充气吗?

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
    .setCancelable(false)
    .setPositiveButton("Go", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int id) {
        EditText textBox = (EditText) findViewById(R.id.textbox);
        doStuff();
    }
});

FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an ERROR*/);
f1.addView(findViewById(R.layout.dialog_view));

AlertDialog alert = builder.create();
alert.show();
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

105
推荐指数
6
解决办法
21万
查看次数

android活动已泄露窗口com.android.internal.policy.impl.phonewindow $ decorview问题

我正在使用Android应用程序来显示网络错误.

NetErrorPage.java

package exp.app;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class NetErrorPage extends Activity implements OnClickListener {    

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.neterrorlayout);
        Button reload=(Button)findViewById(R.id.btnReload);
        reload.setOnClickListener(this);    
        showInfoMessageDialog("Please check your network connection","Network Alert"); 
    }

    public void onClick(View arg0)             
        {
            if(isNetworkAvailable())
            {                   
                Intent myIntent = new Intent((Activity)NetErrorPage.this, MainActivity.class);   
                myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);              
                ((Activity)NetErrorPage.this).startActivity(myIntent);
                finish();
            }
            else
                showInfoMessageDialog("Please check your network connection","Network Alert");
    }

    public …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks android-layout android-alertdialog

67
推荐指数
4
解决办法
13万
查看次数

AlertDialog的setCancelable(false)方法不起作用

我创建了一个正常工作的AlertDialog.它正在消失,如果我按下:
1)
使用鼠标退出键盘按钮或2)后退按钮
为了使其在上述条件下保持聚焦,我在构建时添加了".setCancelable(false)"语句.但是,我仍然看到对话消失了.问题出在哪儿?请帮忙.

代码添加:

return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(title)
                .setCancelable(false)
                .setPositiveButton(R.string.alert_dialog_ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            ((FragmentAlertDialog)getActivity()).doPositiveClick();
                        }
                    }
                )
                .setNegativeButton(R.string.alert_dialog_cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            ((FragmentAlertDialog)getActivity()).doNegativeClick();
                        }
                    }
                )
                .create();
Run Code Online (Sandbox Code Playgroud)


环境:XP Professional上的Android 4.0.

android android-alertdialog

62
推荐指数
4
解决办法
5万
查看次数

在 Jetpack Compose 中显示自定义警报对话框

我正在搜索如何在 Jetpack Compose 中创建自定义对话框。在 XML 或 Material Design 中,我们可以轻松创建自定义对话框,在其中我们可以接受用户输入、单选按钮等,但我在 Jetpack Compose 中没有找到这样的东西。

android android-alertdialog android-jetpack android-jetpack-compose android-compose-dialog

62
推荐指数
7
解决办法
7万
查看次数

DialogFragment优于AlertDialog

在开发Android应用程序时,我已经读过,建议使用DialogFragment而不是直接使用AlertDialog来显示警报和确认.

例如,在DialogFragment的文档中完成此操作:http://developer.android.com/reference/android/app/DialogFragment.html

人们还说他们更喜欢这个: Android DialogFragment vs Dialog

我想知道这种方法的优点,因为代码变得更加复杂.

谢谢

android android-alertdialog android-dialogfragment dialogfragment

61
推荐指数
2
解决办法
4万
查看次数

监听器可以替换为lambda

我已经实现了一个AlertDialog正常的负面和正面按钮点击监听器.当我打电话时,new DialogInterface.OnClickListener()它向我展示了一个建议:Anonymous new DialogInterface.OnClickListener() can be replaced with lambda.我知道这不是错误或大事,但这个建议究竟是什么,我能做些什么呢?很少的帮助将不胜感激!

编辑

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Text", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // do something here
    }
});
Run Code Online (Sandbox Code Playgroud)

Android Studio V1.2.1.1 compileSdkVersion 22 buildToolsVersion "22.0.0" minSdkVersion 14 targetSdkVersion 22

lambda android android-alertdialog

60
推荐指数
3
解决办法
4万
查看次数

具有自定义视图的AlertDialog:调整大小以包装视图的内容

我在我正在构建的应用程序中遇到此问题.请忽略所有设计缺点和缺乏最佳实践方法,这纯粹是为了展示我无法解决的一个例子.

我有DialogFragment一个AlertDialog使用自定义View设置返回基本AlertDialog.Builder.setView().如果这View有特定的大小要求,我如何Dialog正确调整自身大小以显示自定义中的所有内容View

这是我一直使用的示例代码:

package com.test.test;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-alertdialog android-dialogfragment

56
推荐指数
4
解决办法
5万
查看次数

如何在片段中显示AlertDialog?

我想在我的应用程序中显示警告对话框.我正在使用片段.我尝试了以下代码来执行此操作:

 AlertDialog ad = new AlertDialog.Builder(context)
            .create();
    ad.setCancelable(false);
    ad.setTitle(title);
    ad.setMessage(message);
    ad.setButton(context.getString(R.string.ok_text), new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
ad.show();
Run Code Online (Sandbox Code Playgroud)

但它崩溃了,logcat中的错误是:

04-18 15:23:01.770:E/AndroidRuntime(9424):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序

从互联网上我开始知道崩溃是由于上下文问题.我给了上下文

context = this.getActivity().getApplicationContext();
Run Code Online (Sandbox Code Playgroud)

我不知道这有什么问题.有谁能够帮我?

android fragment android-context android-alertdialog

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