无法识别更新导航抽屉内容值获取 Activity

Update Navigation Drawer content Value get Activity is not recognized

我有一个使用 recyclerview 和一些静态文本的导航抽屉。我希望更新来自 SharedPreferences 的静态文本末尾的级别值,它包含一个整数值。我正在为我的导航抽屉使用 recyclerview。

NavigationAdapter.java

@Override
    public void onBindViewHolder(NavDrawerAdapter.ViewHolder viewHolder,
            final int i) {

            Drawable drawable = null;
            if (mData.get(i).getDrawable() != 0) {
                drawable = mContext.getResources().getDrawable(
                        mData.get(i).getDrawable());
            }

            if (mData.get(i).getType() == NavItem.ITEM) {
                setText(viewHolder.textViewItem,viewHolder.textViewlevel, i, drawable);
                setBackgroundColor(i, viewHolder);
            }
}
private void setText(TextView textView,TextView textViewlevel, final int i, Drawable drawable) {
         SharedPreferences sharedPref= getActivity().getSharedPreferences("levels", 0);
            String level_time= sharedPref.getString("level_time", "");
        textView.setText(mData.get(i).getText());
        textViewlevel.setText(level_time);
        textView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null,
                null);
}

SharedPreferences 不工作并在 "getActivity().getSharedPreferences(" 级别给我错误,0);" 有没有其他方法可以让我访问 SharedPreferences?

使用

SharedPreferences shared = getActivity().getSharedPreferences(PREF_NAME, MODE_PRIVATE); 
String channel = shared.getString(keyname, "");

此处您使用了 0 而不是 MODE_PRIVATE

getActivity() 在您的回收视图适配器中无法识别。您可以将适配器定义为片段的内部 class。否则,将上下文传递给适配器的构造函数并使用它:

public class Adapter extends .... {

    private Context mPassedContext;

    public Adapter(Context con, ....) {
        mPasssedContext = con;
    }
}

使用这个上下文:

SharedPreferences sharedPref= mPassedContext.getSharedPreferences("levels", 0);