Я использую SwipeFlingAdapterView из https://github.com/Diolor/Swipecards
arrayAdapter = new arrayAdapter(this, R.layout.item,rowItems );
flingContainer.setAdapter(arrayAdapter);
flingContainer.getTopCardListener().selectRight();
flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
@Override
public void removeFirstObjectInAdapter() {
// this is the simplest way to delete an object from the Adapter (/AdapterView)
Log.d("LIST", "removed object!");
rowItems.remove(0);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onLeftCardExit(Object dataObject) {
//Do something on the left!
//You also have access to the original object.
//If you want to use it just cast it (String) dataObject
cards obj = (cards) dataObject;
String userId = obj.getUserId();
usersDb.child(userId).child("connections").child("nope").child(currentUID).setValue(true);
Toast.makeText(MainActivity.this,"left",Toast.LENGTH_SHORT).show();
}
@Override
public void onRightCardExit(Object dataObject) {
cards obj = (cards) dataObject;
String userId = obj.getUserId();
usersDb.child(userId).child("connections").child("yes").child(currentUID).setValue(true);
isConnectionMatch(userId);
Toast.makeText(MainActivity.this,"right",Toast.LENGTH_SHORT).show();
}
@Override
public void onAdapterAboutToEmpty(int itemsInAdapter) {
// Ask for more data here
/*al.add("XML ".concat(String.valueOf(i)));
arrayAdapter.notifyDataSetChanged();
Log.d("LIST", "notified");
i++;*/
}
@Override
public void onScroll(float scrollProgressPercent) {
}
});
// Optionally add an OnItemClickListener
flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener() {
@Override
public void onItemClicked(int itemPosition, Object dataObject) {
cards obj = (cards) dataObject;
String userId = obj.getUserId();
Toast.makeText(MainActivity.this,"click",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,UsersProfilesActivity.class);
intent.putExtra("userId", userId);
startActivity(intent);
}
});
}
Все, что я хочу сделать, это переместить левую / правую верхнюю карту, когда моя деятельность загружена. Проблема в том, что загрузка этих карт из базы данных занимает некоторое время, поэтому функция flingContainer.getTopCardListener().selectRight();
работает до того, как появятся какие-либо карты.
Причина: java .lang.NullPointerException: выбросить с нулевым исключением в com .lorentzos.flingswipe.SwipeFlingAdapterView.getTopCardListener (SwipeFlingAdapterView. java: 256) в com.example.tinderapp.MainActivity.onCreate (MainActivity. java: 129)