如何在非活动类中使用活动类中的函数

时间:2012-02-24 03:26:58

标签: java android

我的项目中有两个类。第一个是“公共类Schtimetable extends Activity”,其中有一个我需要在B类中调用的方法:“public class ClassMode”。方法是

public int calculateWeeks() {
    SharedPreferences preferences = getSharedPreferences("currentWeek",
            Context.MODE_PRIVATE);
    int csweek = preferences.getInt("CSweek", 1);
    int weekofyear = preferences.getInt("currentWeek", 0);
    int now_weekofyear = Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);
    return (csweek + now_weekofyear - weekofyear);// return current week
}

我发现我不能像这样使用它:

Schtimetable s = new Schtimetable();
    int oddOReven = cursor.getInt(cursor.getColumnIndex("oddOReven"));
    cursor.close();
    if ((s.calculateWeeks() % 2 == oddOReven) || (oddOReven == 2)) {
        Log.i(TAG, "has Class is true");
        return true;
    } else {
        Log.i(TAG, "has Class is false");
        return false;
    }

总之,我想通过calculateweeks()返回的方法得到一个数据,我怎么能得到它。 谢谢!

2 个答案:

答案 0 :(得分:3)

不要从活动中调用方法。活动意味着要启动,而不是像普通的旧java对象那样实例化。将方法放在别处(在其他一些辅助类中)并让它将Context作为参数(这样你就可以得到SharedPreferences)。然后,在任何活动中,您都可以调用该方法。此外,您应该将该方法设为静态。

答案 1 :(得分:0)

像这样使用

 YourActivtyClass activityclassobject = new YourActivtyClass();

 activityclassobject.activityclassmethod();

在非活动类中使用它

从另一个活动类调用...

我希望你理解调用方法的过程..