我是编程新手并试图理解为什么有时会出现没有“new”关键字实例化对象的原因。例如谷歌的android教程中的基本教程应用程序:
在"Build an Intent"示例中,使用Intent
关键字创建了new
:
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
...
}
但是稍后在"Display the Message"中,如果我理解正确的话,他们会以这种方式制作Intent
个对象:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
...
}
并使用getIntent()方法。另外,getIntent()方法在哪里定义?这是一个来自Intent类的方法吗?
同样在上一节(https://developer.android.com/training/basics/firstapp/starting-activity.html)中,他们制作了一个新的editText,但我仍然不明白为什么不使用“new”关键字:
EditText editText = (EditText) findViewById(R.id.editText);
感谢您的帮助。
答案 0 :(得分:1)
很高兴知道你想开始学习代码..我已经为你的两个问题添加了解决方案,最好是继续前进,然后一切都将开始看起来合乎逻辑,一步一步......开始是最难的..
Intent intent = getIntent();
这实例化一个Intent对象,该值来自函数getIntent()..在以下链接中,您可以发现它是来自Activity类的方法,并返回启动此活动的intent。
https://developer.android.com/reference/android/app/Activity.html
EditText editText =(EditText)findViewById(R.id.editText);
这是对布局文件中定义的字段" editText"的引用。 你在布局中引用了资源。 更好更明确的是使用另一个命名..
EditText"你想如何命名字段" =(EditText)findViewById(R.id。"布局中字段的名称")
如下所示,尝试在线学习一些基础课程,观看一些教程并挂在那里!
祝你好运!