Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Android ListView JSON数组不';行不通_Android_Arrays_Listview - Fatal编程技术网

Android ListView JSON数组不';行不通

Android ListView JSON数组不';行不通,android,arrays,listview,Android,Arrays,Listview,数组“ary”从服务器和适配器接收数据,但不在ListView中显示数据。在onCreate()方法之后接收数据是否有问题 有人有想法/解决方案吗 public class ScheduleActivity extends AppCompatActivity { public ListView list; public ScheduleViewAdapter mSVAdapter; public JSONArray ary; @Override protected void onCreat

数组“ary”从服务器和适配器接收数据,但不在ListView中显示数据。在onCreate()方法之后接收数据是否有问题

有人有想法/解决方案吗

public class ScheduleActivity extends AppCompatActivity {


public ListView list;
public ScheduleViewAdapter mSVAdapter;
public JSONArray ary;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_schedule);

    list = (ListView) findViewById(R.id.lstSchedule);
    ary = new JSONArray();
    mSVAdapter = new ScheduleViewAdapter(this, ary);
    list.setAdapter(mSVAdapter);
    buildList();
}


public void setListView(JSONArray ary) {
    this.ary = ary;
    mSVAdapter.notifyDataSetChanged();
}

private  void buildList() {

    final RequestQueue requestQueue = Volley.newRequestQueue(this);
    // String URL1 = "http://10.0.2.2:3000/users/:userId/offers/";


    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    // vorläufiger hardcode
    String userID = "5b2f9f3cd56ff67974d2f58e";
   /* userID = settings.getString("userID", "");*/


    String URL1 = "http://10.0.2.2:3000/orders/?buyerID=".concat(userID).concat("/userorder");
    StringRequest stringRequest = new StringRequest(Request.Method.GET, URL1, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.i("ConsoleText", response);
            try {

                JSONArray ary2 = new JSONArray(response);
                setListView(ary2);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("ConsoleText", error.toString());
        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }
    };

    requestQueue.add(stringRequest);
}
}

把你的方法改成这个

public void setListView(JSONArray ary) {
this.ary = ary;
mSVAdapter = new ScheduleViewAdapter(this, ary);
list.setAdapter(mSVAdapter);
}
一旦我们创造了这个

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule);
list = (ListView) findViewById(R.id.lstSchedule);
ary = new JSONArray();
buildList();
}

当我调试时,onCreate中的ary和list为空。此外,列表和MSVAdapter在onResponse中不再可用。有什么想法吗?你在这个log.i(“ConsoleText”,response)中得到响应了吗;是的,我喜欢。我从服务器收到一个JSON,我在帖子中编辑了适配器。谢谢你的帮助。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule);
list = (ListView) findViewById(R.id.lstSchedule);
ary = new JSONArray();
buildList();
}