小弟刚学习android开发,有一个问题

publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//创建一... public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//创建一个线性布局管理器
LinearLayout layout = new LinearLayout(this);
super.setContentView(layout);
layout.setOrientation(LinearLayout.VERTICAL);
//创建一个TextView
final TextView show = new TextView(this);
LinearLayout layout = new LinearLayout(this);
//创建一个按钮
Button bn = new Button(this);
.......
}
LinearLayout layout = new LinearLayout(this);
final TextView show = new TextView(this);
Button bn = new Button(this);
这里的this 怎么解释,越详细越好,我知道this相当于指向当前对象的指针;为什么要用它。之前创建对象时,()内经常为空啊! 不需要传入对象。比如 DataBase db=new DataBase();
我看了下LinearLayout类,TextView类,根本没有定义参数为空的Constructors构造器 public LinearLayout() ,为什么? 必须至少传入Content对象,Content实例对象干吗用的。传入它做什么? 非常谢谢! public LinearLayout(Context context)
展开
 我来答
星绰
2014-03-06 · TA获得超过390个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:217万
展开全部

这些空间你要指定它归属于哪个界面管理,所以要指定一个Context。下面是Context的继承关系图:

我们知道上面代码中的this指的就是Activity,传入这个Activity意味着view(就是你new的控件)拥有一个指向activity的引用,进而引用activity占有的资源。同时Activity绘制时也会调用view的draw方法绘制显示控件,Activity销毁时也会回收这个控件。

另外补充下,Android开发布局最好使用res/layout/下用xml文件写,获取控件通过findViewById方法来获取。这样不尽规范,而且易于修改,对代码可读性也有很大的提高(布局归布局,功能归功能),还有维护性(相互不影响)。

_446865422
2014-03-06 · TA获得超过229个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:157万
展开全部
它是一个上下方对象,指的是当前的Activity,你也可以不用它,直接赋值为null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西凉国小卒
2014-03-06 · TA获得超过113个赞
知道小有建树答主
回答量:186
采纳率:87%
帮助的人:50.5万
展开全部
this是就是当前对象,至于你的构造器是,java里面,一般你不写构造器的话就会有个默认的空构造器,就是说没有参数的构造器,任何对象都是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-06
展开全部
你不用管它干什么的……只要传入一个Context对象就好了,不能传入null。实在好奇的话,可以看看Button的构造函数,看context到底是用到什么地方了(一般是获取资源和自定义属性)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式