再会。开始学习 Android Studio 和 Java。决定从创建一个简单的程序开始。有3个字段。其中 2 个输入数字。在第三个字段中,它们的总和通过按下按钮显示。以下截图中的错误。有人可以解释什么是错的以及如何解决它。
package com.example.admin.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onButtonClick (View v) {
EditText el1 = (EditText) findViewById(R.id.num1);
EditText el2 = (EditText)findViewById(R.id.num2);
TextView resText = (TextView)findViewById(R.id.sum);
int number1 = Integer.parseInt(el1.getText().toString());
int number2 = Integer.parseInt(el2.getText().toString());
int res = number1 + number2;
resText.setText(Integer.toString(res));
}
}



如果我仍然理解正确,那么您不会问为什么将其以红色突出显示
R(有时工作室显示存在错误,但已通过更新修复gradle-refresh,或者只是重新编译)。至于这三个,都不是错误。这些是警告。灰色下划线的只是警告。通常编译器在编译时会发出相同的警告。黄色突出显示的是来自工作室本身的智能警告。
您为每个警报看到的消息包含您需要的信息:
不需要显式强制转换。这意味着您可以简单地删除
(EditText)括号。顺便说一句,如果您将光标放在带下划线的文本上并按Alt+ Enter,那么工作室将为您提供解决这种情况的选项,在这种情况下,它只会提供删除括号。该功能从未使用过。这意味着工作室没有注册使用该功能的地方,因此该功能可能没有用。
事实上,工作室的一个巧妙警告立即表明这种格式没有考虑到语言环境设置。并立即提供了一个更好的选择 - 使用
String.format(顺便说一下,您可以简单地将其写为res + ""- 也可以转换为字符串)。