Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

运行时的java意图参数

在使用一些安卓代码时,我遇到了一个疑问(可能是愚蠢的),但我想澄清它


我试图:每次在一个应用程序中启动一个启动屏幕,该应用程序也会读取一些SharedReference,并根据该SharedReference的值打开下一个活动


我被卡住了:当我无法弄清楚作为参数传递给意图时(请参阅代码中唯一的注释)

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


共 (3) 个答案

  1. # 1 楼答案

    使用for循环创建类的实例,并将其作为第二个参数传递

    例如:

    在每个字段中创建一个静态字段作为public static Activity activity = this; 然后获取它并将对象作为第二个参数传递

    当然,您需要使用condition获取活动

  2. # 2 楼答案

    您可以使用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);
    
  3. # 3 楼答案

    如果下面还有其他类似的情况,请使用或高于:

    Intent i;
    if(appStatus==0)
    {
       i = new Intent(this,LoginActivity.class);
    }
    else if(appStatus==1)
    {
         i = new Intent(this,SecondActivity.class);
    }
    startActivity(i);
    finish();