android-在AlertDialog.Builder中用到findViewById()出现NullPointer异常

问题描述

在AlertDialog.Builder中用到findViewById()出现NullPointer异常

先看代码:

  @Override
    public void onClick(View v) {
    final AlertDialog.Builder adb = new AlertDialog.Builder(getApplicationContext());
adb.setView(LayoutInflater.from(getApplicationContext()).inflate(R.layout.custom, null));

adb.setPositiveButton("Add",new android.content.DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {

                DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker);

                java.util.Date date = null;
                Calendar cal = GregorianCalendar.getInstance();
                cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth());
                date = cal.getTime();
            }
        });
adb.show();
}

在这行里出现异常:

cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth());

我尝试了用adb.findViewById();但是有错误:The method findViewById(int) is undefined for the type AlertDialog.Builder

帮忙看一下,谢谢

解决方案

DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker);这一行改成:

DatePicker datePicker = (DatePicker)adb.findViewById(R.id.datePicker);

试下这个:

final AlertDialog.Builder adb = new AlertDialog.Builder(this);
    final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.main1, null);
    adb.setView(view);
    final Dialog dialog;
    adb.setPositiveButton("Add",new android.content.DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int arg1) {

                    DatePicker datePicker = (DatePicker)view.findViewById(R.id.datePicker1);

                    java.util.Date date = null;
                    Calendar cal = GregorianCalendar.getInstance();
                    cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth());
                    date = cal.getTime();
                }
            });
    dialog = adb.create();
    dialog.show();
时间: 2024-10-22 17:24:51

android-在AlertDialog.Builder中用到findViewById()出现NullPointer异常的相关文章

Android对话框AlertDialog.Builder使用方法详解_Android

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 幸运的是,an

Android使alertDialog.builder不会点击外面和按返回键消失的方法

这个问题之前一直困扰我,我的需求就是点击对话框外面和按返回键对话框不会消失,按返回键还好解决,拦截下返回键就OK了. 但是点击外面不好解决.之前有人说模态对话框,我看了一会,觉得不是我想要的效果.popWindow的话,必须提供父view. 重新看下api,发现设置setCancelable属性就行了. 如: public void showNoProject(){ Builder builder = new AlertDialog.Builder(MainActivity.this) .set

【Android】Android中AlertDialog对话框的使用实例

package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.

【Android】Android中AlertDialog用法大全

package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.

简析Android多种AlertDialog对话框效果_Android

android提供了四类常用的对话框,本文分享具体实现方法: 1.AlertDialog,功能最丰富,实际运用最广泛 2.progressDialog,进度条对话框 3.DatePickerDialog,日期选择对话框 4.TimePickerDialog,时间选择对话框 这里主要介绍第一种,剩下的三种都是第一种的子类,所以其方法,都可以直接使用. 创建一个对话框一般需要下面几个步骤 1.创建AlertDialog.Builder对象 2.对AlertDialog.Builder通过SetTit

简析Android多种AlertDialog对话框效果

android提供了四类常用的对话框,本文分享具体实现方法: 1.AlertDialog,功能最丰富,实际运用最广泛 2.progressDialog,进度条对话框 3.DatePickerDialog,日期选择对话框 4.TimePickerDialog,时间选择对话框 这里主要介绍第一种,剩下的三种都是第一种的子类,所以其方法,都可以直接使用. 创建一个对话框一般需要下面几个步骤 1.创建AlertDialog.Builder对象 2.对AlertDialog.Builder通过SetTit

Android中AlertDialog各种对话框的用法实例详解_Android

 目标效果: 程序运行,显示图一的几个按钮,点击按钮分别显示图二到图六的对话框,点击对话框的某一项或者按钮,也会显示相应的吐司输出. 1.activity_main.xml页面存放五个按钮. activity_main.xml页面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools

Android中AlertDialog用法实例分析_Android

本文实例分析了Android中AlertDialog用法,分享给大家供大家参考,具体如下: Android中AlertDialog为一些程序提供了对话框,有些功能能够进一步满足程序的需要.下面举例介绍. 程序如下: import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.

Android中AlertDialog的六种创建方式_Android

 创建AlertDialog的步骤: 1.创建AlertDialog.Builder对象 2.调用Builder对象的setTitle方法设置标题,setIcon方法设置图标 3.调用Builder相关方法如setMessage方法.setItems方法.setSingleChoiceItems方法.setMultiChoiceItems方法.setAdapter方法.setView方法设置不同类型的对话框内容. 4.调用setPositiveButton.setNegativeButton.s