nicht aus einem Hintergrund -Thread geändert wird, sondern nur aus dem UI -Thread. Stellen Sie sicher, dass Ihr Adapter
notifyDataSchanged () aufgerufen wird, wenn sich der Inhalt ändert. [In
ListView (2131296554, Class Android.widget.ListView) mit Adapter (Klasse
RU.App.vksearch.leveladapter)] unter
android.widget.Listview.Layoutchildren(listview.java:1721) at
und undwidget.abslistView.ontouchup(abSlistView.java:4094) unter
und undwidget.abslistView.ontouchEvent(abslistView.java:3886) unter
android.view.dispattouch(vevent(view. />android.view.viewgroup.dispatchtransformedToucheEnvent(viewGroup.java:3054)
at android.view.viewgroup.dispatchTouchevent (viewGroup.java:2741) < /p>
< /blockquote>
Code: Select all
ArrayList title_ = new ArrayList();
ArrayList photo_ = new ArrayList();
ArrayList date_ = new ArrayList();
ArrayList time_ = new ArrayList();
ArrayList count_ = new ArrayList();
LevelAdapterFavor adapter;
ListView listView;
offset
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listView = (ListView) findViewById(R.id.listView);
adapter = new LevelAdapterFavor(this, title_, photo_, time_, count_, date_);
listView.setAdapter(adapter);
video();
}
public void video() {
VKRequest r = new VKRequest("video.search",VK.getApiVersion());
r.addParam("q","google");
r.addParam("offset", 0);
r.addParam("count",200);
VK.execute(r, new VKApiCallback() {
@Override
public void fail(@NonNull Exception e) {
}
@Override
public void success(JSONObject response) {
ExecutorService service = Executors.newSingleThreadExecutor();
service.execute(new Runnable() {
public void run() {
try {
JSONObject responseObject = response.getJSONObject("response");
JSONArray responseArray = responseObject.getJSONArray("items");
offset = offset + responseArray.length();
for(int i = 0; i < responseArray.length(); i++) {
JSONObject item = responseArray.getJSONObject(i);
String title = item.getString("title");
String photo = item.getString("photo_320");
long duration = item.getLong("duration");
long date = item.getLong("date");
String count = item.getString("views");
Date date_1 = new Date(date*1000L);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date_1);
String time = 989999999999;
title_.add(title);
photo_.add(photo);
date_.add(formattedDate);
time_.add(time);
count_.add(count);
}
} catch (Exception ignored) {
}
}});
Future future = service.submit(new Runnable() {
public void run() {
if(String.valueOf(responseArray).contains("[]")){
offset = 0;
handler_lenta.sendEmptyMessage(1);
}else{
handler_lenta.sendEmptyMessage(2);
}
}
});
try{
future.get();
} catch (InterruptedException ignored) {
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
}
});
Handler handler_lenta = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
if(msg.what == 1){
poisk.setVisibility(View.VISIBLE);
adapter.notifyDataSetChanged();
}
if(msg.what == 2){
video();
adapter.notifyDataSetChanged();
}
}
};
}