SwipeFlingAdapterView android studio - PullRequest
0 голосов
/ 29 апреля 2020

Я использую 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)

...