2015-07-02 75 views
-10

我学习Android和不知道的Java(还),发现在一个示例代码声明:“x =(something)”在java中意味着什么?

TextView mainTextView; 
mainTextView = (TextView) findViewById(R.id.main_textview); 

所以,问题是(作为标题说):什么是“=(... )“ 意思?

+8

这是一个赋值语句,它是Java中最基本的结构之一。我建议在尝试编写Android应用程序之前至少学习Java语言的基础知识。 –

+0

将一种类型投射到其他类型 – Andrew

回答

2

创建objectref为对象的TextView

TextView mainTextView; 

findViewById是具有参数和R.id.main_textview返回的值的方法是越来越浇铸到TextView的类型和存储在mainTextView

mainTextView = (TextView) findViewById(R.id.main_textview); 
1

这意味着findViewById方法将XML元素转换为TextView。

+0

不将XML元素转换为TextView。将视图投射到TextView。 findViewById返回一个View对象 –

+0

View是一个XML元素。它在布局文件中声明和访问 – andrewdleach

+0

视图是一个Java对象。 Android使用XML来定义布局和其他项目的值。尽管XML不是一种Java对象。 – dharms

0

的方法findViewById有以下签名:

public View findViewById (int id) 

这意味着它返回一个通用的非指定的View

因为你的代码显然需要有更具体的(类层次的意思)TextView工作,它是findViewById返回值之前预先考虑(TextView)类型强制转换TextView

虽然它是一种常见的做法,这是一种危险的,因为它假定通过findViewById返回的值是在这种情况下,类型TextView的。如果不是,您将得到一个运行时异常ClassCastException