Java 如何从另一个类访问GetSharedReferences?
我已经建立了2个项目,我的主要项目和一个twitter发布项目。我已经将twitter导入到主应用程序中,现在正在尝试连接它。下面是导入代码。问题是我知道我遗漏了一些可能与上下文有关的东西?我刚刚总结了我的主要项目中包含的内容,以便您更好地理解(希望如此) 这是TweetToWitterActivityJava 如何从另一个类访问GetSharedReferences?,java,android,Java,Android,我已经建立了2个项目,我的主要项目和一个twitter发布项目。我已经将twitter导入到主应用程序中,现在正在尝试连接它。下面是导入代码。问题是我知道我遗漏了一些可能与上下文有关的东西?我刚刚总结了我的主要项目中包含的内容,以便您更好地理解(希望如此) 这是TweetToWitterActivity public class TweetToTwitterActivity extends Activity { private SharedPreferences mPrefs;
public class TweetToTwitterActivity extends Activity {
private SharedPreferences mPrefs;
/** Twitter4j object */
private Twitter mTwitter;
private RequestToken mReqToken;
public void buttonLogin(View v) {
mPrefs = getSharedPreferences("twitterPrefs", MODE_PRIVATE);
// Load the twitter4j helper
mTwitter = new TwitterFactory().getInstance();
// Tell twitter4j that we want to use it with our app
mTwitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
if (mPrefs.contains(PREF_ACCESS_TOKEN)) {
Log.i(TAG, "Repeat User");
loginAuthorisedUser();
} else {
Log.i(TAG, "New User");
loginNewUser();
}
}
Logcat会产生此错误
09-23 11:27:40.034: ERROR/AndroidRuntime(229): java.lang.NullPointerException
09-23 11:27:40.034: ERROR/AndroidRuntime(229): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
09-23 11:27:40.034: ERROR/AndroidRuntime(229): at com.tweet.t.TweetToTwitterActivity.buttonLogin(TweetToTwitterActivity.java:74)
并指向这条线
mPrefs = getSharedPreferences("twitterPrefs", MODE_PRIVATE);
GetSharedReferences()是上下文类的一个方法。您正在创建一个TweetToWitterActivity实例,该实例扩展了活动,但该活动目前尚未启动。
解决此问题的一种方法是将上下文对象也传递给buttonLogin:
更改public void按钮登录(视图五)
至public void按钮登录(视图v,上下文)
和mPrefs=getSharedReferences(“twitterPrefs”,MODE_PRIVATE)代码>
tomPrefs=context.getSharedReferences(“twitterPrefs”,MODE\u PRIVATE)代码>
和twitter.buttonLogin(v)代码>
totwitter.buttonLogin(v,this)代码>GetSharedReferences()是上下文类的一个方法。您正在创建一个TweetToWitterActivity实例,该实例扩展了活动,但该活动目前尚未启动。
解决此问题的一种方法是将上下文对象也传递给buttonLogin:
更改public void按钮登录(视图五)
至public void按钮登录(视图v,上下文)
和mPrefs=getSharedReferences(“twitterPrefs”,MODE_PRIVATE)代码>
tomPrefs=context.getSharedReferences(“twitterPrefs”,MODE\u PRIVATE)代码>
和twitter.buttonLogin(v)代码>
totwitter.buttonLogin(v,this)代码>赫曼特是对的
mPrefs = getSharedPreferences("twitterPrefs", MODE_PRIVATE);
为此,您需要TweetToWitterActivity活动,而不仅仅是一个实例。因此,当您使用new关键字时,永远不会创建活动。只有操作系统才能为您创建活动。所以
twitter.buttonLogin(v, YourCurrentActvity.this);
及
赫曼特是对的
mPrefs = getSharedPreferences("twitterPrefs", MODE_PRIVATE);
为此,您需要TweetToWitterActivity活动,而不仅仅是一个实例。因此,当您使用new关键字时,永远不会创建活动。只有操作系统才能为您创建活动。所以
twitter.buttonLogin(v, YourCurrentActvity.this);
及
试着这样传球
twitter.buttonLogin(v,Activityname.this)
然后在调用的函数中改变如下
公共无效按钮登录(视图v,此上下文)
{
这个.getSharedReferences(“twitterPrefs”,MODE_PRIVATE)
}试着像这样传球
twitter.buttonLogin(v,Activityname.this)
然后在调用的函数中改变如下
公共无效按钮登录(视图v,此上下文)
{
这个.getSharedReferences(“twitterPrefs”,MODE_PRIVATE)
}onCreate()方法在哪里。。发布此活动的完整代码,以便我们了解..您的onCreate()方法在哪里。。发布此活动的完整代码,以便我们了解。。