首页 > 解决方案 > 如何在静态参数化方法中调用 Intent 并启动新活动

问题描述

我想在静态参数化方法中调用 Intent 并希望从那里开始新的活动。我在 MainActivity 中使用了一个名为zodiacSign 的数学调用,它带有两个参数,它可以工作并调用另一个活动HoroscopeFinder。在其工作期间,我想打开一个新的活动表单 HoroscopeFinder。如果有人知道请帮忙。我的代码如下:

主要活动代码

 dateSetListener=new DatePickerDialog.OnDateSetListener(){
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

            //code
            month=month+1;
            String date= dayOfMonth+"/"+month+"/"+year;
            datePicker.setText(date);
            //from here we can get day and month
            String getDay= String.valueOf(dayOfMonth);
            getDayInt=Integer.parseInt(getDay);
            String getMonth= String.valueOf(month);
            getMonthInt=Integer.parseInt(getMonth);
            //method call for deduct sign using DOB
            zodiacSign(getDayInt, getMonthInt);}

HoroscopeFinder 类代码

public class HoroscopeFinder {

static String astroSign="";

public static void zodiacSign(int day, int month)
{
    //Toast.makeText(, "here done", Toast.LENGTH_LONG).show();
    //Log.i("check", "done here...!");


    if ((month == 12 && day >= 22 && day <= 31) || (month ==  1 && day >= 1 && day <= 19)) {
        astroSign="Capricorn";
    }
    else if ((month ==  1 && day >= 20 && day <= 31) || (month ==  2 && day >= 1 && day <= 17)) {
        astroSign="Aquarius";
        //astro_sign="Aquarius";
    }
    else if ((month ==  2 && day >= 18 && day <= 29) || (month ==  3 && day >= 1 && day <= 19)) {
        astroSign="Pisces";
    }
    else ((month ==  3 && day >= 20 && day <= 31) || (month ==  4 && day >= 1 && day <= 19)) {
        astroSign="Aries";
        Intent intent=new Intent(this, AriesActivity.class);
        startActivity(intent);
    }

标签: javaandroidandroid-intent

解决方案


您可以传递一个Activityto,zodiacSign以便它可以构建和启动意图:

public static void zodiacSign(int day, int month, Activity activity)
{
    if (...) {

        ...

        Intent intent=new Intent(activity, AriesActivity.class);
        activity.startActivity(intent);
    }
}

然后,回到你的MainActivity课堂:

...
zodiacSign(getDayInt, getMonthInt, MainActivity.this);

推荐阅读