我在解析时有一个arraylist列,我想要更新,如下面的代码所示。但是,在解析列中它只显示" []"更新列后,单击列表视图中的一组用户。感谢。
List<String> users = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alternative_follow);
ListView listView = (ListView)findViewById(R.id.listView);
if (ParseUser.getCurrentUser().getList("isfollowing") == null){
List<String> emptyList = new ArrayList<>();
ParseUser.getCurrentUser().put("isfollowing", emptyList);
ParseUser.getCurrentUser().saveInBackground();
}
listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
final ArrayAdapter<String> arrayAdapterSelected = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_checked, users);
listView.setAdapter(arrayAdapterSelected);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView textview = (CheckedTextView)view;
//CHECK IF TEXTVIEW IS CHECKED
if (textview.isChecked()){
ParseUser.getCurrentUser().getList("isfollowing").add(users.get(position));
ParseUser.getCurrentUser().saveInBackground();
}else{
ParseUser.getCurrentUser().getList("isfollowing").remove(users.get(position));
ParseUser.getCurrentUser().saveInBackground();
}
}
});
users.clear();
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNotEqualTo("username", ParseUser.getCurrentUser().getUsername());
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public String done(List<ParseUser> objects, ParseException e) {
if (e == null) {
if (objects.size() > 0) {
for (ParseUser object : objects) {
users.add(object.getUsername());
}
arrayAdapterSelected.notifyDataSetChanged();
}
}
return null;
}
});
}}
答案 0 :(得分:0)
不幸的是,添加功能似乎不适用于包括我在内的很多人,因此该问题的解决方案是创建一个List,然后将其设置为等于on create方法中的当前用户列表,然后更新该列表并最终将当前用户列表设置为新创建和更新的列表,例如:
private static ArrayList<String> array = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alternative_follow);
array = ParseUser.getCurrentUser().getList("isfollowing");
array.add("New Item 1");
array.add("New Item 2");
array.add("New Item 3");
ParseUser.getCurrentUser().put("isfollowing" , array);
ParseUser.getCurrentUser().saveInBackground();
}
您应该对创建的ArrayList执行所有工作,并且在完成所有必需的更改后,使用创建的数组更新用户“isfollowing”列表并保存