Android:列表未传递给RecyclerView

Android:列表未传递给RecyclerView,android,json,google-maps,android-volley,Android,Json,Google Maps,Android Volley,我正在将一个值从MainActivity.class传递到此片段ResultFrag.class。在这个类中,它应该显示用户当前位置请求值范围内的位置 返回的json是正确的 我还试图通过Logcat调试并显示myList中的项目,结果很好。这意味着json被正确解析,并被添加到myList myAdapter = new MyAdapter(getActivity(), getTheList()); 将列表传递给自定义适配器的特定行;我不认为它是从getTheList()方法获取列表的。因为

我正在将一个值从
MainActivity.class
传递到此片段
ResultFrag.class
。在这个类中,它应该显示用户当前位置请求值范围内的位置

返回的
json
是正确的

我还试图通过Logcat调试并显示
myList
中的项目,结果很好。这意味着
json
被正确解析,并被添加到
myList

myAdapter = new MyAdapter(getActivity(), getTheList());
将列表传递给自定义适配器的特定行;我不认为它是从
getTheList()
方法获取列表的。因为我尝试使用以下代码进行调试,将其放入
onCreateView
中,但没有记录任何内容:

 for (int b = 0; b < getTheList().size(); b++) {
        Log.d("list: ", Integer.toString(b) + " : " + getTheList().get(b).getPlace());
    }

这段时间你修好了吗?我看到的是,您实际上在适配器和片段之间共享列表。在构建适配器之后,您可以对列表进行更改(添加项)。但不在适配器上调用notfyDatasetChanged()。将更改应用到列表后,添加该调用

           JSONArray arr = new JSONArray(response);
            for (int i = 0; i < arr.length(); i++) {
                JSONObject obj = arr.getJSONObject(i);

                GetterSetter getterSetter = new GetterSetter();
                getterSetter.setId(obj.getString("id"));
                getterSetter.setPlace(obj.getString("name"));
                getterSetter.setDistance(obj.getInt("distance"));

                myList.add(getterSetter);
            }
            myAdapter.notfyDatasetChanged()
JSONArray arr=新的JSONArray(响应);
对于(int i=0;i
您应该共享MyAdapter类的代码。@HermannKlecker我添加了MyAdapter类。而for b循环loes没有记录任何内容?
response
看起来怎么样?@HermannKlecker当b循环位于
onCreateView
中时,它不会记录任何内容。但是当它在
searchPLace()
方法中时,它会记录一些东西,这意味着json解析正在工作。只是它没有将列表传递给在
onCreateView
中初始化的适配器。响应返回也是正确的。只是它没有将列表传递给适配器。我在想这和修饰语或其他东西有关。。我自己也不确定。经过几天的努力,我终于解决了这个问题。我更改了一些代码,并在适配器中添加了
notifyDataSetChanged()
方法。它正在工作。谢谢我接受这个答案:)
    import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.Collections;
import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
List<GetterSetter> data = Collections.emptyList();
private LayoutInflater layoutInflater;
private Context context;

public MyAdapter (Context context, List<GetterSetter> data) {
    this.context = context;
    this.data = data;
    layoutInflater = layoutInflater.from(context);
}

@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = layoutInflater.inflate(R.layout.mylist, parent, false);
    MyViewHolder holder = new MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(MyAdapter.MyViewHolder holder, int position) {
    // Get event data
    GetterSetter current = data.get(position);

    holder.id.setText(current.getId());
    holder.place.setText(current.getPlace());
    holder.distance.setText("Distance: " + String.valueOf(current.getDistance()) + " km");
}

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


public class MyViewHolder extends RecyclerView.ViewHolder {
    TextView id;
    TextView place;
    TextView distance;

    public MyViewHolder(View itemView) {
        super(itemView);

        id = (TextView) itemView.findViewById(R.id.placeId);
        place = (TextView) itemView.findViewById(R.id.name);
        distance = (TextView) itemView.findViewById(R.id.distance);
    }

}
}
           JSONArray arr = new JSONArray(response);
            for (int i = 0; i < arr.length(); i++) {
                JSONObject obj = arr.getJSONObject(i);

                GetterSetter getterSetter = new GetterSetter();
                getterSetter.setId(obj.getString("id"));
                getterSetter.setPlace(obj.getString("name"));
                getterSetter.setDistance(obj.getInt("distance"));

                myList.add(getterSetter);
            }
            myAdapter.notfyDatasetChanged()