gpt4 book ai didi

java - Android:类中的 SharedPreferences PreferenceManager.getDefaultSharedPreferences

转载 作者:行者123 更新时间:2023-12-02 04:45:42 25 4
gpt4 key购买 nike

我想从我的首选项 fragment 中获取一个字符串到我的 Android 应用程序中的一个类,但我无法像通常那样获取它。

我类(class)的代码:

public class VtplListContentItem implements VtplListItem  {

private VtplEntry m_data;

public VtplListContentItem(VtplEntry data) {
m_data = data;
}

@Override
public int getViewType() {
return RowType.LIST_ITEM.ordinal();
}

@Override
public View getView(LayoutInflater inflater, View convertView) {
View view;
if(convertView == null) {
view = inflater.inflate(R.layout.list_item, null);
}
else {
view = convertView;
}

[...]

// (this) is the error Context cannot be applied to this class
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

String myClass = prefs.getString("UserMyClass", "null");

// Mark
if (m_data.getSchoolClass().contains(myClass)) {
view.setBackgroundResource(R.color.accent);
} else {
view.setBackgroundResource(android.R.color.white);
}
return view;
}

@Override
public VtplEntry getData() {
return m_data;
}

}

我尝试过:

public class VtplListContentItem extends Activity implements VtplListItem {

但随后我收到错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at com.philipp_mandler.android.vtpl.VtplListContentItem.getView(VtplListContentItem.java:52)
at com.philipp_mandler.android.vtpl.VtplListAdapter.getView(VtplListAdapter.java:38)

第 52 行是:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

问题是(这个),但我不知道我需要选择哪个上下文

最佳答案

您应该实例化该对象,将 Activity 的上下文作为构造函数中的参数传递,并从那里使用它

关于java - Android:类中的 SharedPreferences PreferenceManager.getDefaultSharedPreferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679696/

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