オリジナルを直接変更してから、他のアダプターのようにList
呼び出すことはできません。これは、オリジナルを保持しないためです。notifyDataSetChanged()
List
ただし、次のように、アダプター自体を使用して同じ結果を得ることができます。
spinnerAdapter.clear();
spinnerAdapter.addAll(updatedListData);
spinnerAdapter.notifyDataSetChanged(); // optional, as the dataset change should trigger this by default
user392117 からのこの回答に基づいています。
編集:デフォルトでは、リストを変更するメソッドがadd()
自動的remove()
に呼び出されます (setNotifyOnChange(boolean) の Android 開発者向けドキュメントをnotifyDataSetChanged()
参照してください) 。
public void setNotifyOnChange (boolean notifyOnChange)
リストを変更するメソッド (add、addAll(java.util.Collection)、addAll(java.lang.Object[])、insert、remove、clear、sort(java.util.Comparator)) が自動的に notifyDataSetChanged を呼び出すかどうかを制御します。false に設定されている場合、呼び出し元は手動で notifyDataSetChanged() を呼び出して、添付されたビューに変更を反映させる必要があります。デフォルトは true で、notifyDataSetChanged() を呼び出すとフラグが true にリセットされます。
notifyDataSetChanged()
そのため、毎回電話する必要はありません。これが事実であることがわかった場合は、 setNotifyOnChange(true) を使用できます
spinnerAdapter.setNotifyOnChange(true); //only need to call this once
spinnerAdapter.add(Object); //no need to call notifyDataSetChanged()