2011-07-10 31 views
0

我是使用Eclipse在Android上创建应用程序的新手,并且在执行某些操作时遇到了一些麻烦。Android和Eclipse全局函数

我目前正在努力不必一遍又一遍地重复任务,所以可以从任何活动中调用函数。

使用公共类创建一个新的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

阅读关于静态函数和关于Java的书籍。当使用静态函数的loadPreferences时,Functions.loadPreferences()会很好。因此总结使用:static public void lP()或Functions f = new Functions(); f.lP()。 – gregory561

+0

您可能还想阅读此问题(http://stackoverflow.com/q/708012/778427)。这样,你的全球班将有一个“上下文”。 –

回答

0

相反如果该方法衍生的你正在尝试使用是否包含在其他一些类中然后传入实例化的类对象以使其可用于多个活动等。

如果您从可以工作的活动调用loadPreferences(this),则其他事物的相同类型的模式也可以工作。

你是对的,虽然,机器人需要一点心思去把事情可重复使用的

0

代码工作在活动,因为活动从上下文是其中getSharedPreferences()定义的

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