Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从包含的活动类(startActivityForResult)启动结果的意图_Android_Android Intent_Android Activity_Android Context - Fatal编程技术网

Android 如何从包含的活动类(startActivityForResult)启动结果的意图

Android 如何从包含的活动类(startActivityForResult)启动结果的意图,android,android-intent,android-activity,android-context,Android,Android Intent,Android Activity,Android Context,这是我上一个问题的后续问题: 基本上,我意识到我需要从包含的活动类调用startActivityForResult(而不是startActivity)。上一个问题的答案将上下文从Activity类传递到包含的类。但是,仅上下文还不足以调用StartActivityForResult 最好的方法是什么?我必须将整个Activity类传递给包含的类中的方法吗?好吧,看看你的问题,你应该能够做到这一点: Class TestLauncher { public TestLauncher (Con

这是我上一个问题的后续问题:

基本上,我意识到我需要从包含的活动类调用
startActivityForResult
(而不是
startActivity
)。上一个问题的答案将上下文从Activity类传递到包含的类。但是,仅上下文还不足以调用
StartActivityForResult


最好的方法是什么?我必须将整个Activity类传递给包含的类中的方法吗?

好吧,看看你的问题,你应该能够做到这一点:

Class TestLauncher
{
   public TestLauncher (Context c)
   {
      Intent i = new Intent(MainActivity.this, YourActivity.class)
      MainActivity.this.startActivityForResult(i, 1);
   }
}

试试看它是否有效。

是的。将活动作为参数传递给包含的类


注意:不要存储对活动的引用。根据他的另一个问题,我不认为“包含的”类实际上是一个包含的内部类。它是一个单独的类,活动中包含该类的实例。令人困惑和不准确的措辞,但我认为这就是我们正在处理的情况。那么把它传下去可能是前进的方向。@LeffelMania-你是对的,这就是我的意思。。。对于作为主类成员的对象,正确的术语是什么(这样我以后就不会把人搞糊涂了)?所以。。。如果您从未使用过“上下文c”,那么在“上下文c”中传递它有什么意义?另外,尝试执行“MainActivity.this”时,我得到了一个编译时错误:“在范围中无法访问MainActivity类型的封闭实例”。我假设这是因为TestLauncher不是嵌套类?我假设它是嵌套的。如果它只是一个普通类,那么您可能应该按照@LeffelMania的建议执行,并将活动实例作为方法参数传入。