Android Studio错误:无法翻译setText中的字符串文字

时间:2016-02-07 21:04:49

标签: android android-studio

这是我的第一个应用程序,我遇到了一些麻烦。

当我运行应用程序时,它崩溃,我不知道如何解决此错误。

Image

public class MainActivity extends AppCompatActivity {\
    TextView outputBottom = (TextView)findViewById(R.id.output);

}
public void play_the_big_lie(View view) {
    the_big_lie.start();
    outputBottom.setText("ObamaCare, the big lie");
}

3 个答案:

答案 0 :(得分:11)

  

setText中的字符串文字无法翻译

这不是错误,您可以放心地忽略它(除非您需要在应用中进行翻译)。

Android Studio通知您​​应该使用字符串资源文件而不是硬编码字符串。

如果由于你没有发布logcat而我不得不猜测问题的根源,那就是这个。

您无法在findViewById之前使用setContentView,因为没有查看"查找"。

请尝试以下代码

public class MainActivity extends AppCompatActivity {

    private TextView outputBottom;    

    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_main);
        outputBottom = (TextView)findViewById(R.id.output);
    }

答案 1 :(得分:5)

这里有两个问题。首先,你不能使用findViewById,直到你“创造”了东西并且有了查找东西的视图,所以你想要将之前的答案分开。

public class MainActivity extends AppCompatActivity {

  private TextView outputBottom;    

  protected void onCreate(Bundle b) {
      super.onCreate(b);
      setContentView(R.layout.activity_main);
      outputBottom = (TextView)findViewById(R.id.output);
  }

  ...
}

要设置文本,最好不要用引号中的字符串“硬编码”,而是创建一个字符串文件并要求它,这看起来更像是:

outputBottom.setText(R.string.my_words);

以下是developer notes on strings

如果您正在使用Android Studio,那么有关于如何实现这一目标的教程。

答案 2 :(得分:0)

您可以通过添加

来忽略这些警告
 lintOptions {
    disable 'MissingTranslation'
}

到gradle.build文件。