运行时的Intent参数

时间:2014-09-02 06:00:31

标签: java android android-intent types

在处理一些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

4 个答案:

答案 0 :(得分:3)

您可以使用if statement轻松完成此操作,并使用appStatus检查是否要转到LoginActivitySecondActivity并实例化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

来获取活动