【问题标题】:Android: Why can I not setText in the same line as findViewByIdAndroid:为什么我不能 setText 与 findViewById 在同一行
【发布时间】:2014-06-04 05:58:52
【问题描述】:

我不确定这是 Android 问题还是 AndroidStudio 问题。为什么这是有效的:

TextView currentItem
currentItem = (TextView)findViewById(R.id.myText);
currentItem.setText("text");

但这不是(无法解析方法 setText(Java.Lang.String))

(TextView)findViewById(R.id.myText).setText("text");

没什么大不了的,但我有一些需要大量文本更新的代码。如果我能在一行中得到它会更干净。

【问题讨论】:

  • 尝试在(TextView)findViewById(R.id.myText)周围加上另一对括号
  • 请记住,方法调用的优先级高于强制转换。如果要在一系列链式方法调用的中间进行强制转换,则需要额外的括号。

标签: java android android-studio


【解决方案1】:

findViewById 返回一个通用的“View”,因此您必须先将其转换为TextView,然后才能设置文本。在您的代码中,您试图在“View”对象而不是“TextView”对象上调用 setText。

试试这个:

 ((TextView)findViewById(R.id.myText)).setText("text");

【讨论】:

    【解决方案2】:

    请试试这个:

    ((TextView)findViewById(R.id.myText)).setText("text");
    

    【讨论】:

      【解决方案3】:

      findViewById 返回一个View,所以你还没有来​​自TextViewsetText。您必须首先通过在findViewById 周围加上括号来转换为TextView,然后像这样调用setText

      ((TextView)findViewById(R.id.myText)).setText("text");
      

      另外,这是 Java 的东西,不是 Android 或 Android Studio 的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多