gpt4 book ai didi

java - 在java的另一个类上动态执行android Activity 函数

转载 作者:行者123 更新时间:2023-12-01 10:55:59 24 4
gpt4 key购买 nike

嗨,我是 Android 新手,我已经创建了该 Activity 并且工作正常,现在我需要动态创建来调用 Activity 函数。因此,在我的项目中,数据是从服务器端获取的,因此我为所有 Activity 创建了通用函数,但数据以 json 形式提供,因此解析我在 Activity 上编写的函数的 json,因此它工作正常,但我将传递 Activity 名称以及相应函数的方法,因此它应该动态加载并给出结果,但它不起作用,请参见下面的代码:

((MainActivity) activity).parseJsonResponse(result);

上面的代码工作正常

动态地我已经工作了这段代码,但不适用于

 ClassLoader myClassLoader=ClassLoader.getSystemClassLoader();
String classNameToBeLoaded = "MainActivity";
Class myClass = Class.forName("com.example.iripl_09.helloworld." + classNameToBeLoaded);
Object whatInstance = myClass.newInstance();
String methodParameter = result;
Method myMethod = myClass.getMethod("parseJsonResponse",new Class[] { String.class });
myMethod.invoke(whatInstance, new Object[] { methodParameter });

所以它给出错误:

java.lang.reflect.InvocationTargetException

是否有任何方法可以调用 MainActivity 函数

最佳答案

大多数充当类入口点的 Activity 函数/方法都被“覆盖”。因此,通过直接函数调用或通过反射来调用它们并不是一个好的做法。

大多数此类情况都会导致相同的错误。即使您可能不会收到此错误,也可能会破坏 Android 系统定义的正常 Activity 流程。

话虽如此,为了回答这个问题,最好避免将泛型方法保留在 Activity 中,因为这些方法需要由其他类调用。此类方法应保留在实用程序/工具包等类中,然后在应用程序中保持通用。

关于java - 在java的另一个类上动态执行android Activity 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com