在处理一些Android代码时,我遇到了一个疑问(可能是愚蠢的),但我想清除它......
我正在尝试每次在应用程序中启动启动画面,该应用程序也将读取一些共享偏好,并根据该共享偏好的值,将打开下一个活动。
我陷入困境:当我无法弄清楚要传递什么作为意图的参数时(请参阅代码中的唯一注释)
if(appStatus==0)
{
activityToOpen="LoginActivity";
}
else if(appStatus==1)
{
activityToOpen="SecondActivity";
}
int secondsDelayed = 1;
new Handler().postDelayed(new Runnable() {
public void run() {
Intent i=new Intent(MainSplashScreen.this,);//here how should be the second argument will be added
startActivity(i);
finish();
}
}, secondsDelayed * 1000);
activityToOpen
的类型是String
。我不知道它是什么类型的变量,.class
答案 0 :(得分:3)
您可以使用if statement
轻松完成此操作,并使用appStatus
检查是否要转到LoginActivity
或SecondActivity
并实例化Intent
构造函数取决于令牌。
<强>样品:强>
new Handler().postDelayed(new Runnable() {
public void run() {
Intent i;
if(appStatus==0)
i=new Intent(MainSplashScreen.this,LoginActivity.class);
else if(appStatus==1)
i=new Intent(MainSplashScreen.this,SecondActivity.class);
startActivity(i);
finish();
}
}, secondsDelayed * 1000);
答案 1 :(得分:2)
使用泛型类
Class<?> cls = null;
if(appStatus==0)
{
cls = LoginActivity.class;
}
else if(appStatus==1)
{
cls = SecondActivity.class;
}
并将cls
参数传递为
Intent i=new Intent(MainSplashScreen.this,cls);
答案 2 :(得分:2)
使用或以上如果其他如下:...........
Intent i;
if(appStatus==0)
{
i = new Intent(this,LoginActivity.class);
}
else if(appStatus==1)
{
i = new Intent(this,SecondActivity.class);
}
startActivity(i);
finish();
答案 3 :(得分:0)
使用for循环创建类的实例,并将其作为第二个参数传递。
例如:
在每个public static Activity activity = this;
中创建一个静态字段
然后得到它并将对象作为第二个参数传递
当然,您需要使用condition