私のアプリケーションでは、Backendlessを使用して、MultiSelectionSpinner内のサーバー上のすべての登録ユーザーのリストを表示して、メール(およびID)を選択しようとします。そのため私は、のonCreateに次のコードを使用します。BackendlessデータでMultiSelectionSpinnerを塗る
List<String> contact_list = loadContactData();
String[] contact_stringArray = contact_list.toArray(new String[contact_list.size()]);
spinner = (MultiSelectionSpinner) findViewById(R.id.mySpinner1);
spinner.setItems(contact_stringArray);
主な問題はここにあるかもしれない:
public List<String> loadContactData() {
final List<String> contact_name = new ArrayList<>();
final List<String> contact_id = new ArrayList<>();
Backendless.Data.of(BackendlessUser.class).find(new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
public void handleResponse(BackendlessCollection<BackendlessUser> users) {
// Spinner Drop down elements
Iterator<BackendlessUser> userIterator = users.getCurrentPage().iterator();
while (userIterator.hasNext()) {
BackendlessUser user = userIterator.next();
String user_mail = user.getEmail();
String user_id = user.getUserId();
contact_name.add(user_mail);
contact_id.add(user_id); }
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, contact_name);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Log.d("SPINNER", String.valueOf(contact_name)); }
public void handleFault(BackendlessFault backendlessFault) {
System.out.println("Server reported an error - " + backendlessFault.getMessage());}});
Log.d("SPINNER end", String.valueOf(contact_name));
return contact_name;
}
は、私は、サーバーからデータを取得しますが、ポップアップ・スピナーは常に空です。 Logcatの "SPINNER end"は "SPINNER"の前に来ます。ログ「スピナー」では、登録ユーザーからのメールを取得しますが、ログ「スピナー終了」は空です。たぶん時間の問題ですが、わかりません... 私のMultiSelectionSpinnerクラスはOKです。 私を助けてくれることを願っています!
しかし、このシーケンスを変更するにはどうすればよいですか? handleResponse()は、ログ呼び出しとreturn文の前に実行する必要があります...問題をお寄せいただきありがとうございます! – Timitrov