layout-android对话框的根视图

问题描述

android对话框的根视图
android中的对话框,布局文件:

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

在Activity中给listView添加一个Adapter:

@Overrideprotected Dialog onCreateDialog(int id) {    switch(id){    case ADDPLAYERDIALOG:{        Dialog d = new Dialog(this);                    d.setContentView(R.layout.training_dialog);        ListView lv = (ListView) d.getCurrentFocus().getRootView();         ListAdapter adapter = new ArrayAdapter<String>(getBaseContext() android.R.layout.simple_list_item_1 createNamesList());           lv.setAdapter(adapter);         return d;    }    }    return super.onCreateDialog(id);}

结果出现NullPointerException:

 ListView lv = (ListView) d.getCurrentFocus().getRootView();

没有这个ListView小部件的ID因为是XML布局文件,不能写lv = d.findViewById(R.id.listview);

请高手指教。

解决方案

Dialog d = new Dialog(this);ListView lv = (ListView) View.inflate(getBaseContext()R.layout.training_dialognull);d.setContentView(lv);ListAdapter adapter = new ArrayAdapter<String>(this            android.R.layout.simple_list_item_1 createNamesList());lv.setAdapter(adapter);

解决方案二:
getCurrentFocus()会返回null

getCurrentFocus()会返回null

解决方案三:

 public class MyListView extends Activity {             private ListView listView;        //private List<String> data = new ArrayList<String>();        @Override        public void onCreate(Bundle savedInstanceState){            super.onCreate(savedInstanceState);           listView = new ListView(this);            listView.setAdapter(new ArrayAdapter<String>(this android.R.layout.simple_expandable_list_item_1getData()));            setContentView(listView);        }              private List<String> getData(){                         List<String> data = new ArrayList<String>();            data.add(""测试数据1"");            data.add(""测试数据2"");            data.add(""测试数据3"");            data.add(""测试数据4"");                         return data;        }    }

以上是基础调用方法,可以比较一下

时间: 2024-09-15 08:40:57

layout-android对话框的根视图的相关文章

android 在代码中如何设置 根视图的宽高?

问题描述 android 在代码中如何设置 根视图的宽高? android 在代码中如何设置 根视图的宽高? 如何设置视图container的宽高? public void popEdit(EditText _edit) { // edit=_edit; LinearLayout container=new LinearLayout(cont); container.setOrientation(LinearLayout.HORIZONTAL); LinearLayout.LayoutParam

Android 对话框 Dialog使用实例讲解_Android

对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框 ProgressDialog 3, 日期对话框 DatePickerDialog 4, 时间对话框 TimePi

android-从当前的activity获得根视图

问题描述 从当前的activity获得根视图 我知道通过v: v.getRootView()可以从一个给定的视图中获得根视图.当参数是一个View时我也可以从一个按钮的onClick事件中获得视图.但是我怎么才能从一个activity中获得视图? 解决方案 getWindow().getDecorView().findViewById(android.R.id.content) 解决方案二: 一楼说的其实是对的,getWindow().getDecorView()就是根视图了,当然用Activi

不用背景变暗调用android对话框

问题描述 不用背景变暗调用android对话框 我有这个非常漂亮的对话框视图,我设置了我的UserInputDialog类为: <LinearLayout android:id=""@+id/LinearLayout01"" android:layout_width=""fill_parent"" android:layout_height=""fill_parent"" andr

属于自己的Android对话框(Dialog)自定义集合_Android

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Acti

8种android 对话框(Dialog)使用方法详解_Android

本文汇总了android 8种对话框(Dialog)使用方法,分享给大家供大家参考,具体内容如下 1.写在前面 Android提供了丰富的Dialog函数,本文介绍最常用的8种对话框的使用方法,包括普通(包含提示消息和按钮).列表.单选.多选.等待.进度条.编辑.自定义等多种形式,将在第2部分介绍. 有时,我们希望在对话框创建或关闭时完成一些特定的功能,这需要复写Dialog的create().show().dismiss()等方法,将在第3部分介绍. 2.代码示例 2.1 普通Dialog(图

Android 对话框(Dialog)大全详解及示例代码_Android

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Acti

Android 对话框sweet-alert-dialog_Android

android原生的dialog太生硬了,之前看到了这个效果非常不错但是没有用过,今天给别人推荐使用,他遇到了问题,导入后错误非常多,也没有库工程.于是自己认真看了一下,这是个AndroidStudio的工程,并且里面还依赖于materialish-progress工程,也是个AS的工程.于是打算弄一个eclipse的版本并且将这两个工程融合在一起作为一个库工程XAlertDialogLibrary.使用时将其作为库导入项目中即可. 效果如下 使用起来非常简单,测试代码如下: MainActiv

Android中的ViewPager视图滑动切换类的入门实例教程_Android

ViewPager引入示例首先让大家有个全局的认识,直接上个项目,看看仅仅通过这几行代码,竟然就能完成如此强悍的功能. 效果图: 实现了三个view间的相互滑动. 第一个VIEW向第二个VIEW滑动.第二个VIEW向第三个VIEW滑动 一.新建项目,引入ViewPager控件ViewPager.它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换. 1.在主布局文件里加入 <RelativeLayout xmlns:android="http://schemas.a