如何解决错误:getSharedPreferences(String,int)未定义类型new View.OnClickListener(){}

All*_*der 3 android sharedpreferences android-fragments

我在编码中遇到此错误,并不完全确定如何解决此问题.我已经搜索过尝试解决这个问题,但似乎找不到任何有用的东西.我以前做过这个,但从来没有片段,所以也许是因为那个?

我正在追随exception:

方法getSharedPreferences(String,int)未定义类型new View.OnClickListener(){}

这是我的代码:

public class TestingFragment extends Fragment {

public TestingFragment(){}
private CheckBox ch;
private Context pref;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_testing, container, false);

    ch = (CheckBox) rootView.findViewById(R.id.checkBox62);
    ch.setOnClickListener(new View.OnClickListener() {
        private String PREFRENCES_NAME;

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        if(ch.isChecked())
                {
            SharedPreferences pref = getSharedPreferences(PREFRENCES_NAME,0);
            ch.setChecked(pref.getBoolean("cbx62_ischecked" ,true));
            pref.edit().putBoolean("check",false).commit();
            }
        {
        }}
    });
    return rootView;
} }
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个吗?任何帮助将不胜感激!

Bla*_*ama 18

更改此代码:

SharedPreferences pref = getSharedPreferences(PREFRENCES_NAME,0);
Run Code Online (Sandbox Code Playgroud)

至 :

SharedPreferences pref = getActivity().getSharedPreferences(PREFRENCES_NAME,0);
Run Code Online (Sandbox Code Playgroud)

记住你不能getSharedPreferences直接调用方法Fragment,因为它属于Activity类.因此,你只需要打电话getActivity.