首先,对不起这个糟糕的标题,我完全想不出该怎么称呼它。
假设我有一个值为“ActivityMain”的字符串,并且我的项目中有一个名为 ActivityMain 的 Activity。无论如何我可以通过字符串获取类的新实例吗?
总体思路是从服务器请求数据,返回一些不同的活动类,然后我想启动返回的任何活动。
首先,对不起这个糟糕的标题,我完全想不出该怎么称呼它。
假设我有一个值为“ActivityMain”的字符串,并且我的项目中有一个名为 ActivityMain 的 Activity。无论如何我可以通过字符串获取类的新实例吗?
总体思路是从服务器请求数据,返回一些不同的活动类,然后我想启动返回的任何活动。
假设您可以获得活动类的完全限定名称,您可以遵循此答案并使用:
Class<?> act = Class.forName("com.bla.TestActivity");
我想如果梯子可以做你想做的事。
if(responsefromsever.equals(NameOfActivityInString)){
// instantiate the activity
}
用例:我假设存在一个名为 MainActivity 的 Activity 类。而你从服务器收到的是response
,(即字符串)
String nameOfActivity = "MainActivity";
if(response.equals(nameOfActivity)){
MainActivity instantiation or whatever you want to do
}else if(response.equals("SomeOtherActivity")){
//SomeOtherActivity or whatever you want to do
}
总体思路是从服务器请求数据,返回一些不同的活动类,然后我想启动返回的任何活动。
一个简单的方法来找我是你可以有一些switch
条件或if-then-else
条件来比较收到的字符串并相应地启动所需的活动。例如:
if ( stringReceived.equals("ActivityMain"){
//start ActivityMain
} else{
//others...
}
如果要开始的活动不多,这可能很有用。
似乎您正在向您的客户端程序的服务器共享实现细节。如果您想将服务器连接到 iOS 应用程序怎么办?那么整个活动名称返回的想法就行不通了。为您的界面“画一条不同的线”可能是最好的选择。