我正在尝试简化我的代码,但由于某些原因,“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);
有什么想法吗?
答案 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元素的属性。在您的示例中,您将属性设置作为类型转换的一部分。
如果你曾经在同一个类中需要更改这个元素的文本,这不是最好的方法,因为它会占用额外的时钟周期,而不是只保留元素的变量。