当前位置:首页 > 开发 > 移动开发 > 正文

android项目Java文件找界面元素findViewById(R.id.*);

发表于: 2014-09-28   作者:麦田的设计者   来源:转载   浏览:
摘要:    写android的新手都知道,用findViewById()找界面元素,一般默认为this.findViewById(R.id.*);的形式,this为当前的主界面。但是,如果不是主界面对应的xml文件的id时该怎么办呢   ?    两个视图,一个MainActivity,一个AlertDialog,分别对应着main

   写android的新手都知道,用findViewById()找界面元素,一般默认为this.findViewById(R.id.*);的形式,this为当前的主界面。但是,如果不是主界面对应的xml文件的id时该怎么办呢   ?

   两个视图,一个MainActivity,一个AlertDialog,分别对应着main.xml文件和second.xml文件.

main.xml

 <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1" />

second.xml

 <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button2" />

在主Activity里使用 Button button1=(Button)this.findViewById(R.id.button1);

在创建对话框的 方法里面 protected Dialog onCreateDialog(int id){

                                        AlertDialog.Builder builder=new AlertDialog.Builder(this);   //Builder为对话框的辅助类

                   View layout=(View)getLayoutInflater().inflate(R.layout.second);

         

                Button   button2=(Button)Layout.findViewById(R.id.button2);

                        builder.setView(layout);

                        ........增加其余信息

               return builder.create();

                                        }

可以发现,如黄色部分,找button1和button2 对应的findViewById方法对应的对象是不同的,一个是this,一个是Layout。如果改成utton2=this.findViewById(R.id.button2);,则android Application找不到对应id,以为主xml文件没有button,系统就会报错,出现空指针异常!所以findViewById在使用前有必要声明是在哪个xml文件里找id。

 

 

 

  这个错误困扰我一段时间了,今天老师才讲,希望与君共勉,一同进步!

android项目Java文件找界面元素findViewById(R.id.*);

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Android Layout Binder是一个网站,能够在线的根据layout布局文件自动生成findViewById的java代码。
原文地址:http://blog.csdn.net/cmdkmd/article/details/8987346 Android显示GIF动画 GifView GifV
android 平台获取控件的方式,一般使用View.findViewById(int)但还有一个方法findViewWithTag(Objec
最近开始接触Android,并且需要改造Android的原生Laucher。 第一步,需要先对Laucher界面元素进行分
自己开发了一个插件链接:http://awjiyvyzrt.l5.yunpan.cn/lk/Q96Iqf76iSfnJ 最好自己学习使用andro
http://blog.csdn.net/morewindows/article/details/8204460 最近在微博上看到一道有趣的GOOGLE面试
对android布局xml文件一直findViewById十分消耗时间,所以用Javaswing写了一个简单的自动findViewByI
使用TabHost可以通过继承TabHost的方式,也可以通过继承ActivityGroup的方式。 通过extends TabHost
登录界面是图形编程、网页编程的一个经典而又基础的程序。 在安卓中,如图所示一个基本登录界面:
GreenDroid是一款增强型的Android UI库,里面含有大量的适用于普通开发的插件!~ 项目如图: 程序效
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号