0

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

这是目前为我工作的代码:

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

我正在尝试将其简化为以下代码:

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

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

在此处输入图像描述

但是,此代码在其他一些事情上运行良好,例如:

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

有任何想法吗?

4

2 回答 2

6

对于一个班轮:

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

请注意添加的额外括号。

于 2013-01-04T01:29:35.507 回答
3

正如您目前所拥有的(TextView)view.findViewById(R.id.testId).setText("Test");,findViewById 返回一个标准View,因为 setText 方法是 a 的属性TextView

在此语句中,您尝试view.findViewById(R.id.testId).setText("Test")强制转换为 TextView。

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

编辑

要在一行中执行此操作:

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

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

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

于 2013-01-04T01:28:02.603 回答