Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从片段到非活动类获取字符串,然后转换为JSONObject_Java_Android_Android Fragments_Sharedpreferences - Fatal编程技术网

Java 从片段到非活动类获取字符串,然后转换为JSONObject

Java 从片段到非活动类获取字符串,然后转换为JSONObject,java,android,android-fragments,sharedpreferences,Java,Android,Android Fragments,Sharedpreferences,我试图将I从片段传递到非活动类,并将字符串转换为JSONObject 在我的片段中,我将需要的字符串存储在一个共享优先权中 @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View rootView = inflater.inflate(R.layout.store_list, co

我试图将I从片段传递到非活动类,并将字符串转换为JSONObject

在我的片段中,我将需要的字符串存储在一个共享优先权中

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

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

    //super.onCreate();
    VolleyGet.getInstance(getActivity());
    VolleyGet.getInstance().VolleyGET(domain, api, new CustomListener<String>(){
        @Override
        public void getResult(String result){
            if (!result.isEmpty())
            {
                Log.e("storelist---------->", result);

                SharedPreferences sp1=getActivity().getSharedPreferences("storeList", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sp1.edit();
                editor.putString("storeList", result);
                editor.commit();
            }
        }
    });
在我的非活动课程中,我尝试获得如下共享偏好:

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder>{


Context context;
JSONArray storeArray;



SharedPreferences preferences = context.getSharedPreferences("storeList", Activity.MODE_PRIVATE);
String storeList = preferences.getString("storeList", "");


System.out.println("storelist", storeList);
storeArray = new JSONArray(storeList);
JSONObject jObj = storeArray.getJSONObject(0);
List<Movie>     mItems;

    public CardAdapter() {
        super();
        mItems = new ArrayList<Movie>();
        Movie movie = new Movie();
        movie.setName("this will come from the JSONObject");
        movie.setThumbnail(R.drawable.will come from JSONObject);
        mItems.add(movie);

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.store_cardview, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        Movie movie = mItems.get(i);
        viewHolder.tvMovie.setText(movie.getName());
        viewHolder.imgThumbnail.setImageResource(movie.getThumbnail());
    }

    @Override
    public int getItemCount() {
        return mItems.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{

        public ImageView imgThumbnail;
        public TextView tvMovie;

        public ViewHolder(View itemView) {
            super(itemView);
            imgThumbnail = (ImageView)itemView.findViewById(R.id.img_thumbnail);
            tvMovie = (TextView)itemView.findViewById(R.id.tv_movie);
        }
    }
}

我在1上遇到错误。无法解析符号println 2。未知类:storelist 3。storearray也是未知的

请帮忙,谢谢

首先,您不能访问System.out.println或在您的问题范围之外执行操作的未初始化上下文

关于其他错误,我认为您没有显示正确的代码,但是如果错误是storelist,那么您的变量实际上是storelist,因此看起来像是输入错误

看看任何关于RecyclerView适配器的教程,构造函数通常是由上下文提供的。这就是访问SharedReferences所需要的

public class CardAdapter extends 
    RecyclerView.Adapter<CardAdapter.ViewHolder> {

    private JSONArray mArray;
    private Context mContext;
    private SharedPreferences mPrefs;

    public CardAdapter(Context context) {
        mContext = context;
        mPrefs = context.getSharedPreferences("storeList", Activity.MODE_PRIVATE);
        mArray = new JSONArray(mPrefs.getString("storeList", "[]"));
    }

}

你不能只在方法外打印LN你真的需要适配器中的共享首选项吗?为什么您不能在创建适配器之前提取json数组/对象?@cricket_007我可以在外部提取它,但我仍然想知道如何在类中获取共享首选项,谢谢!1请显示该类的构造函数。当前,您的上下文值为null,因此,如果确实编译了该代码,则不应运行该代码。2我不知道未知类storelist引用的是什么错误,因为您仅声明了storelistfine@cricket_0071我已经将类2编辑为Me,我不明白为什么我的storeList不起作用。关于你的评论,你不能只在方法外打印,准确地说,不能在块外打印;