Added an addAll to the ArrayAdapter

It behaves the same as ArrayList.addAll, since
the Object containing the Objects in the Adapter
is a List. Now you can add multiple Objects
at once, instead of looping over a Collection
and add all items one by one.
Unittests will be submitted to the cts project

Change-Id: I16f3286a8ca4cda7eb9f1a99c2aab1cc45b2550f
This commit is contained in:
Christian Mehlmauer
2010-06-11 22:28:38 +02:00
parent fdedc52299
commit 8c582ef859
2 changed files with 68 additions and 3 deletions

View File

@@ -181308,6 +181308,32 @@
<parameter name="object" type="T">
</parameter>
</method>
<method name="addAll"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
<parameter name="collection" type="java.util.Collection&lt;? extends T&gt;">
</parameter>
</method>
<method name="addAll"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
<parameter name="items" type="T...">
</parameter>
</method>
<method name="clear"
return="void"
abstract="false"
@@ -197251,7 +197277,7 @@
deprecated="not deprecated"
visibility="public"
>
<parameter name="arg0" type="T">
<parameter name="t" type="T">
</parameter>
</method>
</interface>

View File

@@ -24,6 +24,7 @@ import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Comparator;
import java.util.Collections;
@@ -83,7 +84,7 @@ public class ArrayAdapter<T> extends BaseAdapter implements Filterable {
*/
private boolean mNotifyOnChange = true;
private Context mContext;
private Context mContext;
private ArrayList<T> mOriginalValues;
private ArrayFilter mFilter;
@@ -180,6 +181,44 @@ public class ArrayAdapter<T> extends BaseAdapter implements Filterable {
}
}
/**
* Adds the specified Collection at the end of the array.
*
* @param collection The Collection to add at the end of the array.
*/
public void addAll(Collection<? extends T> collection) {
if (mOriginalValues != null) {
synchronized (mLock) {
mOriginalValues.addAll(collection);
if (mNotifyOnChange) notifyDataSetChanged();
}
} else {
mObjects.addAll(collection);
if (mNotifyOnChange) notifyDataSetChanged();
}
}
/**
* Adds the specified items at the end of the array.
*
* @param items The items to add at the end of the array.
*/
public void addAll(T ... items) {
if (mOriginalValues != null) {
synchronized (mLock) {
for (T item : items) {
mOriginalValues.add(item);
}
if (mNotifyOnChange) notifyDataSetChanged();
}
} else {
for (T item : items) {
mObjects.add(item);
}
if (mNotifyOnChange) notifyDataSetChanged();
}
}
/**
* Inserts the specified object at the specified index in the array.
*
@@ -236,7 +275,7 @@ public class ArrayAdapter<T> extends BaseAdapter implements Filterable {
*/
public void sort(Comparator<? super T> comparator) {
Collections.sort(mObjects, comparator);
if (mNotifyOnChange) notifyDataSetChanged();
if (mNotifyOnChange) notifyDataSetChanged();
}
/**