在android中传递参数/参数

时间:2011-08-06 22:06:16

标签: android

很抱歉,如果这是一个愚蠢的问题,但我搜索了很多,我找不到任何东西

我完全不理解这段代码 -

Intent intent = new Intent (this, MainActivity.class)

我不了解这一行是(this, MainActivity.class)部分。有人会解释一下吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

记录良好here

public  Intent  (Context  packageContext, Class<?>  cls)
Since: API Level 1

Create an intent for a specific component. All other fields (action, data, type, class) are null, though they can be modified later with explicit calls. This provides a convenient way to create an intent that is intended to execute a hard-coded class name, rather than relying on the system to find an appropriate class for you; see setComponent(ComponentName) for more information on the repercussions of this.
Parameters
packageContext  A Context of the application package implementing this class.
cls     The component class that is to be used for the intent.

答案 1 :(得分:1)

在这种情况下,Intent的参数将是Context和Class。

Context是Android系统中非常有用的一部分,它基本上允许程序跟踪显示的内容和资源的位置。在某些方面,您可以将其视为其他系统中的系统。很多事情需要上下文,以确保一切都在工作,因为它具有松散耦合的性质。

所需的类是您的.Java文件的编译版本,因此要运行MainActivity.java,您将传递MainActivity.Class

答案 2 :(得分:1)

将使用Intents启动活动的过程视为类似于使用Java new关键字实例化对象。实施例...

<强> MyClass.java

public class MyClass {
}

在其他一些代码中......

MyClass exampleClass = new MyClass();

在Android中,活动本质上只是Java类 - 但它们是“特殊”类,因此我们不使用new来实例化它们。相反,我们要求Android系统为我们实例化它们。

在您给出的示例中,您将明确定义要实例化的Activity类...

<强> MainActivity.java

public class MainActivity extends Activity {
}

然后在其他一些代码中使用以下代码......

Intent intent = new Intent (this, MainActivity.class);
startActivity(intent);

startActivity(...)的调用是要求Android系统实例化MainActivity的“新”实例的方式。

正如其他帖子中提到的,此方法需要传递Android Context,在这种情况下使用this。这意味着请求创建MainActivity的新实例的应用程序组件将自己作为Context传递。