Я делаю простое твиттер-приложение, в котором пользователь может следить или публиковать сообщения.
Я использую для этого parse android.
В таблице пользователей я создал столбец с именем «isFollowing», в котором указаны имена подписчиков.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView checkedTextView=(CheckedTextView)view;
if (checkedTextView.isChecked()){
ParseUser.getCurrentUser().getList("isFollowing").add(users.get(position));
}else {
ParseUser.getCurrentUser().getList("isFollowing").remove(users.get(position));
}
ParseUser.getCurrentUser().saveInBackground();
}
});
users
arrayList содержит количество присутствующих пользователей. Если мы нажмем на просмотр списка, то имя пользователя будет добавлено в массив isFollowing
в базе данных синтаксического анализа.
Я использую ParseUser.getCurrentUser().getList("isFollowing").add(users.get(position));
, чтобы добавить имя пользователя в свой массив, что дает мне исключение нулевого указателя.
Но если я использую ParseUser.getCurrentUser.add("isFollowing", users.get(position))
, то он выполняется правильно.
Почему это происходит?
Вероятно, в первый момент ваш список не инициализируется, поэтому getList("isFollowing")
верните null. Вы устанавливаете пустой массив []
при создании этого пользователя в это поле?
Кроме того, если вы ожидаете, что этот массив со временем будет расти и в некоторых случаях достигнет > 20 элементов, у вас могут возникнуть проблемы с производительностью в будущем. Я бы использовал поля отношения или указателя для хранения таких данных.
Можете ли вы ответить и на это, stackoverflow.com/questions/65312284/…
Я проверил код SDK, и ParseUser.getCurrentUser().getList("isFollowing").add(users.get(position))
также должен работать, но вы должны заранее убедиться, что поле isFollowing пользователя инициализировано как минимум пустым массивом. Я отредактировал ответ.
Я не понял. Другой способ, вероятно, изменит только список, который у вас есть в области видимости, но не массив объектов синтаксического анализа.