
请教大神 View view = inflater.inflate();
这种直接通过类名,调用类中的方法,然后赋值给一个变量的方式,是java中的什么知识点。(inflate并不是static方法)(这是Android中的一段代码)跟我讲一下...
这种直接通过类名,调用类中的方法,然后赋值给一个变量的方式,是java中的什么知识点。(inflate并不是static方法)(这是Android中的一段代码)跟我讲一下是应用了java中的那块知识点就行,具体的我自己上我查资料,就不麻烦大神了。实在没财富悬赏,抱歉!
展开
2个回答
展开全部
Inflate可用于将一个xml中定义的布局控件找出来.
因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件。因此如果当前Activity里需要用到别的layout(xml文件),比如对话框上的layout,这时还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,所以,就必须用inflate()先将对话框的layout找出来,然后再用这个layout对象去找到它上面的组件,如:
View view=View.inflate(this,R.layout.dialog_layout,null);
TextViewdialogTV=(TextView)view.findViewById(R.id.dialog_tv);
dialogTV.setText(“abcd”);
如果直接用this.findViewById(R.id.dialog_tv)肯定会报错.
因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件。因此如果当前Activity里需要用到别的layout(xml文件),比如对话框上的layout,这时还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,所以,就必须用inflate()先将对话框的layout找出来,然后再用这个layout对象去找到它上面的组件,如:
View view=View.inflate(this,R.layout.dialog_layout,null);
TextViewdialogTV=(TextView)view.findViewById(R.id.dialog_tv);
dialogTV.setText(“abcd”);
如果直接用this.findViewById(R.id.dialog_tv)肯定会报错.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询