如何在静态参数化方法中调用 Intent 并启动新活动



我想在静态参数化方法中调用Intent,并希望从那里开始新活动。我在我的MainActivity中使用了一个名为zodiacSign的 mathod 调用,其中包含两个参数,它可以工作并调用另一个活动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);}

星座运势查找器类代码

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);
}

将十二生肖方法更新为

........
........
public static void zodiacSign(int day, int month, Context c)
{
if (...) {
....
...
Intent intent=new Intent(c, AriesActivity.class);
c.startActivity(intent);
}
} 

然后在主活动中将context传递给您的星座符号方法作为

... zodiacSign(getDayInt, getMonthInt, MainActivity.this); // this context will help you there to start a new activity

您可以将Activity传递给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);

最新更新