inflate与setcontentview及findviewbyid(一)

LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);

View view=    layoutInflater.inflate(R.layout.g, null);

Button button =(Button)  LayoutInflater.from(getApplicationContext()).inflate(R.layout.g,null,false).findViewById(R.id.button1);

// Button button=(Button)view.findViewById(R.id.button1);

//   Button button=(Button)findViewById(R.id.button1);

setContentView(view);

此时Button也没有作用 第一次View view的时候inflate了一次,第二次找Button的时候又inflate一次,button是属于第二次inflate的,而最终setcontentview却传的是第一次inflate的,所以,button实际上没有加载进来,因为button是第二次inflate的

正确的写法为:

LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);

View view=    layoutInflater.inflate(R.layout.g, null);

Button button=(Button)view.findViewById(R.id.button1);

setContentView(view);

inf late,根据每个xml布局文件翻译成相当于JavaBEAN的Java类,其中的每个属性,相当于XML中的每个节点,如此,实例每个节点的对象,每个节点的唯一值就是ID属性

findviewbyid,根据ID找到已经生成的对象,所以,严格来说,findviewbyid和new是不同的,每new一次,就会有一个对象,findviewbyid则只找到对象的对象

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 18:42:45

inflate与setcontentview及findviewbyid(一)的相关文章

inflate与setcontentview及findviewbyid(二)

public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub comicitem=layoutInflater.inflate(R.layout.comicitem, null); //这个view若是写在外面,那么,后面的textview等内容便显示不出来,因为每次给listview或者gridview等的是最后inflate的实例 //所有的view和其子View,必

android LayoutInflater、setContentView、findviewbyid 区分解析

一.LayoutInflater.inflate(layoutId, root, boolen)中三个参数的意义及作用 (这点可以参考鸿洋前辈博客地址:http://blog.csdn.net/lmj623565791/article/details/38171465) 主要知识点其实很少,如下: 若temp为layoutId所代表的布局,inflate的三种方法区分如下: View view=LayoutInflater.Inflate(layoutId, null )只创建temp ,返回t

第6章(2) Toast(信息提示框)

分类:C#.Android.VS2015: 创建日期:2016-02-08 一.简介 Toast用于向用户显示一些帮助或者提示信息.前面我们已经多次用到它,这里只是系统地将其总结一下,并演示它的各种基本用法. 二.示例-- Demo01Toast 1.运行截图 2.添加Demo01_CustomToast.axml文件 在layout文件夹下添加该文件. <?xml version="1.0" encoding="utf-8"?> <LinearL

Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?

原文:http://www.xuebuyuan.com/1608083.html 最近在研究Activity的启动流程,老罗的blog在看,也找了其它资料学习,也跟过Android4.3的源码, 在跟代码的过程中,突然想到下面的这个问题: 网上太多根据Android开发规范翻译转载的内容,都不是我想要的答案,那就自己分析下. 如下是一段典型的Activity间切换的日志,从AActivity切换到BActivity: 10-17 20:54:42.247: I/com.example.servi

android新闻端demo

学习了有一个多星期的android了,今天跟着视频来个小案例练习下,在这里记录下: 开发软件 android studio 第一步:先在activity_main.xml文件中写布局代码,这里用一个listview来展示每一条新闻 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/too

android面试题目

最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完<andorid从零开始教程>+面试题目全理解,年薪20w以上绝对没问题. 特别献上整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 多个不同布局,可

Android应用开发之性能优化1:ViewStub

开发我们的安卓应用时,根据产品需求,可能需要在运行时根据一定的条件来动态显某View或Layout.我们最常用的方法可能就是:把所有可能用到的View都写在布局文件中,先把不需要的View.setVisibility()参数设为View.GONE(不可见),然后在代码中根据显示的需要动态setVisibility(View.VISIBLE).这样做好处在于:逻辑简单,控制灵活.缺点也很明显:耗费资源. 更好的方法就是:使用ViewStub,它是一个轻量级的View:看不见的,不占布局位置,占用资

Android中title的管理

常见的Android应用每个Activity或者Fragment都会带有一个Title栏.最普通的就是每个Activity的布局文件中都写一个title.但是这样管理起来比较麻烦,因为每个activity的title栏其实看起来都差不多,基本都包含有返回功能,一个textview描述当前页面,最右侧会是一个更多或者搜索之类的功能按钮.这样我们其实可以使用一个通用的布局,在所有的activity的父类中直接控制title的样式. 1.首先是BaseActivity作为所有Activity的父类 p

Android之Toast通知的几种自定义用法

Toast在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. 1.默认用法 [html] view plain copy print? Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show(); 2.Fragment中的用法 [html] view plain copy print? Toast.makeText(getActivity(),"网络连接错误,请检察网络设