gpt4 book ai didi

java - 如何从另一个类访问 getSharedPreferences?

转载 作者:行者123 更新时间:2023-11-29 08:12:13 24 4
gpt4 key购买 nike

我已经构建了 2 个项目,我的主要项目和一个 Twitter 发布项目。我已经将 twitter 导入到 main 中,现在正在尝试将其连接起来。下面是导入代码。问题是我知道我遗漏了一些可能与上下文有关的东西?我刚刚总结了下面我的主要项目中包含的内容,以便您更好地理解(希望如此)。

import com.tweet.t.TweetToTwitterActivity;

TweetToTwitterActivity twitter = new TweetToTwitterActivity();
twitter.buttonLogin(v);

这是 TweetToTwitterActivity

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);

最佳答案

getSharedPreferences() 是 Context 类的一个方法。您只是创建了一个扩展 Activity 的 TweetToTwitterActivity 实例,但此 Activity 目前尚未启动。解决这个问题的一种方法是将 Context 对象也传递给 buttonLogin:

更改public void buttonLogin(View v)

public void buttonLogin(View v, Context context)

mPrefs = getSharedPreferences("twitterPrefs", MODE_PRIVATE);

mPrefs = context.getSharedPreferences("twitterPrefs", MODE_PRIVATE);

twitter.buttonLogin(v);

twitter.buttonLogin(v, this);

关于java - 如何从另一个类访问 getSharedPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7528470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com