Wenn die App ausgeführt wird, ruft sie die auf dem Parse-Server gespeicherten Benutzer ab und fügt sie dann zu hinzu. Aber wenn ich versuche, die gleiche Liste mit listView
zu drucken, ist die listView
leer.ArrayList wird automatisch leer
Ich habe versucht Platzierung Protokolle und fand die userList
Objekte hat, wenn es in der findInBackground
Methode ist aber, nachdem es vorbei ist, wird die Größe von userList
0. Bitte helfen Sie mir die Benutzerliste abrufen und anzeigen aus.
public class Users extends AppCompatActivity {
List<String> userList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_list);
Intent TimeTableCalled = getIntent();
ParseAnalytics.trackAppOpenedInBackground(getIntent());
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if(e==null){
for(ParseObject object:objects){
Log.i("User", object.get("Name").toString());
userList.add(object.get("Name").toString());
Log.i("size in loop", String.valueOf(userList.size()));
}
Log.i("size out of loop", String.valueOf(userList.size()));
}
Log.i("size outside if", String.valueOf(userList.size()));
}
});
Log.i("size", String.valueOf(userList.size()));
ListView listView=(ListView) findViewById(R.id.Listview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,userList);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String userClicked = parent.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), "Clicked item is " + userClicked, Toast.LENGTH_SHORT).show();
}
});
}
}
Vielen Dank! Arbeitete perfekt! –
Gern geschehen. Froh, dass ich helfen konnte. –