提问者:小点点

如何从另一个activity调用非静态函数?


我的代码中有一个函数,我想在其他activity中使用,但我不能使该函数静态化,因为每次添加静态时,它都会给我一个错误(错误指的是“this”):

不能从静态上下文引用“com.example.MemorablePlacecs.MainActivity.This”

这是我要使用的代码:

protected boolean saveArray() {
    SharedPreferences sp = this.getSharedPreferences(SHARED_PREFS_NAME, Activity.MODE_PRIVATE);
    SharedPreferences.Editor mEdit1 = sp.edit();
    Set<String> set = new HashSet<String>();
    set.addAll(mArrayList);
    mEdit1.putStringSet("list", set);
    return mEdit1.commit();
}

谢谢你的帮助


共1个答案

匿名用户

您可以将其设置为静态的,如下所示:

private final static String SHARED_PREFS_NAME = "your_name";

public static boolean saveArray(Context context, List<Needed_Class> list) {
    SharedPreferences sp = context.getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor mEdit1 = sp.edit();
    Set<String> set = new HashSet<String>();
    set.addAll(list);
    mEdit1.putStringSet("list", set);
    return mEdit1.commit();
}

从activity打来电话:

PrefsHelper.saveArray(this, list)