setText(String)不适用于TextView

时间:2013-01-04 01:25:50

标签: java android

我正在尝试简化我的代码,但由于某些原因,“setText”方法不可用。

以下是目前正在为我工​​作的代码:

TextView textView = (TextView)view.findViewById(R.id.testId);
textView.setText("Test");

我正在尝试简单地使用此代码:

(TextView)view.findViewById(R.id.testId).setText("Test");

但是我收到错误消息:“找不到符号”。 甚至IDE也没有给我这个选项:

enter image description here

但是,此代码适用于其他一些事情,例如:

view.findViewById(R.id.another_testID).setOnClickListener(test_listener);

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

对于一个班轮:

((TextView)view.findViewById(R.id.testId)).setText("Test");

请注意添加了额外的括号。

答案 1 :(得分:3)

由于您目前拥有(TextView)view.findViewById(R.id.testId).setText("Test");,因此findViewById会返回标准View,因为setText方法是TextView的属性。

在此声明中,您试图将view.findViewById(R.id.testId).setText("Test")转换为TextView。

上面的2行解决方案是设置文本的最简单方法。

修改

要在一行中执行此操作:

((TextView)findViewById(R.id.testId)).setText("Test");

在此行中,您将设置TypeCast元素的属性。在您的示例中,您将属性设置作为类型转换的一部分。

如果你曾经在同一个类中需要更改这个元素的文本,这不是最好的方法,因为它会占用额外的时钟周期,而不是只保留元素的变量。