我不熟悉使用Eclipse在Android上创建应用程序,并且在执行某些操作时遇到一些麻烦。
我目前正在尝试不必一遍又一遍地重复任务,所以改为执行可以从任何活动中调用的函数。
使用公共类创建一个新的java文件似乎工作正常,但是某些事情不起作用。
package com.android.packagename;
import android.content.SharedPreferences;
public class Functions
{
public static final String PREFS_NAME = "PrefsFile";
SharedPreferences preferences;
public void loadPreferences()
{
SharedPreferences preferences=getSharedPreferences(PREFS_NAME,0);
String username = preferences.getString("username", "");
}
}
我收到"The method getSharedPreferences(String, int) is undefined for the type Functions"
的错误并通过Functions.loadPreferences();
在原始活动中,此代码绝对正常。我试过添加这个。等开始但没有这样的运气。我错过了什么?
由于
答案 0 :(得分:0)
代码在Activity中有效,因为Activity派生自Context,其中getSharedPreferences()已定义
答案 1 :(得分:0)
而不是
public void loadPreferences()
{
SharedPreferences preferences=getSharedPreferences(PREFS_NAME,0);
String username = preferences.getString("username", "");
}
使用
public void loadPreferences(Context C)
{
SharedPreferences preferences=C.getSharedPreferences(PREFS_NAME,0);
String username = preferences.getString("username", "");
}
如果您尝试使用的方法包含在其他类类型中,则传入实例化的类对象以使其可用于多个活动等。
如果你从一个活动中调用loadPreferences(this),那么其他东西的同类模式也会起作用。
你是对的,Android需要一些思考才能重复使用