-1

首先,对不起这个糟糕的标题,我完全想不出该怎么称呼它。

假设我有一个值为“ActivityMain”的字符串,并且我的项目中有一个名为 ActivityMain 的 Activity。无论如何我可以通过字符串获取类的新实例吗?

总体思路是从服务器请求数据,返回一些不同的活动类,然后我想启动返回的任何活动。

4

4 回答 4

2

假设您可以获得活动类的完全限定名称,您可以遵循此答案并使用:

Class<?> act = Class.forName("com.bla.TestActivity");
于 2013-09-12T17:30:02.893 回答
2

我想如果梯子可以做你想做的事。

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
}
于 2013-09-12T17:36:43.143 回答
1

总体思路是从服务器请求数据,返回一些不同的活动类,然后我想启动返回的任何活动。

一个简单的方法来找我是你可以有一些switch条件或if-then-else条件来比较收到的字符串并相应地启动所需的活动。例如:

if ( stringReceived.equals("ActivityMain"){
//start ActivityMain
} else{
//others...
}

如果要开始的活动不多,这可能很有用。

于 2013-09-12T17:30:19.117 回答
0

似乎您正在向您的客户端程序的服务器共享实现细节。如果您想将服务器连接到 iOS 应用程序怎么办?那么整个活动名称返回的想法就行不通了。为您的界面“画一条不同的线”可能是最好的选择。

于 2013-09-12T17:48:38.690 回答