当前位置:  开发笔记 > 编程语言 > 正文

在构建意图时,"这个"是指什么

如何解决《在构建意图时,"这个"是指什么》经验,为你挑选了1个好方法。

我刚开始学习Android并在google android网站上学习这些教程.

在我正在进行的教程中,我正在建立一个开始另一个活动的意图.

com.mycompany.myfirstapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;   
public class MyActivity extends AppCompatActivity {
    /**Called when the user clicks the Send button**/
    public void sendMessage(View view) {
        //Do something in response to button
        Intent intent = new Intent(this, DisplayMessageActivity.class);
    }
}

该教程说"将Context作为其第一个参数(因为Activity类是Context的子类,所以使用它)."

我想这个解释应该足够清楚,但我不明白.

我理解的是sendMessage方法中的'this'是指当前类,因此用作当前类的实例变量,即MyActivity.

这是真的?

如果这是真的,那么它的类型是活动?哪个又是Context的子类?

我不明白为什么'this'的类型是Activity.请为我解释一下.谢谢.



1> aga..:

我理解的是sendMessage方法中的'this'是指当前类,因此用作当前类的实例变量.这是真的?

正确.

如果这是真的,那么它的类型是活动?

它的类型是MyActivity(间接)扩展Activity,所以你可以在这里传递它.

哪个又是Context的子类?

正确.

MyActivity延伸的AppCompatActivity延伸FragmentActivity部分延伸Activity延伸Context部分(省略一些步骤).因此,无论何时需要Context实例,都可以传递一个Activity实例,这就是继承的工作方式.

编辑: ClassActivity不一样.Activity是Android SDK的一个类.类就像一个模板,可用于创建新对象的实例.Intent的构造函数要求您Context在其第一个参数中传递实例.MyActivity延伸Context,这样你就可以通过实例MyActivityIntent的costructor.this在方法内部保存对当前对象的引用.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有