Я пытаюсь получить данные из интернета, и они будут заполнены в виде списка.У меня есть полнофункциональный пользовательский адаптер с именем NoticeAdapter.Arraylist не дополняется динамически созданным объектом.
В чем моя ошибка?У меня уже ушло 8 часов, чтобы найти проблему. Но не найти.Ошибка не отображается, но не создается представление списка.Если я сделаю простой один или два объекта в методе onCreate, он будет добавлен в список.это работает нормально.
Пожалуйста, помогите мне. Заранее спасибо
ListView noticeList;
NoticeAdapter na;
public String title, file_link, dept, pubDate;
Здесь я Decleare данных глобальная переменная
public ArrayList<NoticeModel> data = new ArrayList<>();
String serverUrl = "http://192.168.0.104/virtualclassroomapi/notice.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notice_board);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
noticeList = (ListView) findViewById(R.id.noticelist);
Здесь я звоню, чтобы получить данные из Интернета и сохранить их как объект в данных
getDataFromServer();
Если здесь я вызываю "getData ();»тогда это будет работать
na = new NoticeAdapter(data, getApplicationContext());
noticeList.setAdapter(na);
}
public void getDataFromServer(){
StringRequest request = new StringRequest(Request.Method.POST, serverUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i =0; i<jsonArray.length();i++)
{
try {
JSONObject jsonObject = jsonArray.getJSONObject(i);
title = jsonObject.getString("title");
file_link = jsonObject.getString("file_link");
dept = jsonObject.getString("dept");
pubDate = jsonObject.getString("publish_date");
Я тестирую Ответ с сервера в порядке, используя Toast.но не добавлять в глобальную переменную data (Arraylist) как новый объект
data.add(new NoticeModel(title,file_link,dept,pubDate));
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(NoticeBoard.this,"Response Error",Toast.LENGTH_LONG).show();
}
});
MySingleton.getInstance(NoticeBoard.this).addToRequestQueue(request);
}
Данные отсюда вставляются, но не вставляются оттуда, если я вызываю их вместо getDataFromServer ()
public void getData(){
String title = "title from varable";
data.add(new NoticeModel(title,"something", "get","sthe"));
}