如何在android中组合两个数组列表并在列表视图中显示
我想把两个ArrayList合并成一个ArrayList 我的第一个arraylist如下所示:如何在android中组合两个数组列表并在列表视图中显示,android,arraylist,Android,Arraylist,我想把两个ArrayList合并成一个ArrayList 我的第一个arraylist如下所示: {a,s,d,f,g,h,......} {z,x,c,v,b,.....} 我的第二个arraylist如下所示: {a,s,d,f,g,h,......} {z,x,c,v,b,.....} 然后我想把两者结合起来,成为 {a,s,d,f,g,h,.....,z,x,c,v,b.....} 第一个列表是 ArrayList<String> firstname1 =
{a,s,d,f,g,h,......}
{z,x,c,v,b,.....}
我的第二个arraylist如下所示:
{a,s,d,f,g,h,......}
{z,x,c,v,b,.....}
然后我想把两者结合起来,成为
{a,s,d,f,g,h,.....,z,x,c,v,b.....}
第一个列表是
ArrayList<String> firstname1 = new ArrayList<String>();
ArrayList firstname1=新的ArrayList();
其中,第二个列表是
ArrayList<String> first = new ArrayList<String>();
ArrayList first=new ArrayList();
现在我想把所有这些结合在一起,我想把它列在列表视图中。
如何执行此操作?列表a=new ArrayList();
List<String> a = new ArrayList<String>();
a.add("bla");
a.add("bla");
a.add("bla");
List<String> b = new ArrayList<String>();
b.add("Boo");
b.add("Boo");
b.add("Boo");
// Append content of a to b
b.addAll(a);
// New list containing a union b
List<String> union = new ArrayList<String>(a);
union.addAll(b);
a、 添加(“bla”);
a、 添加(“bla”);
a、 添加(“bla”);
列表b=新的ArrayList();
b、 添加(“Boo”);
b、 添加(“Boo”);
b、 添加(“Boo”);
//将a的内容附加到b
b、 阿道尔(a);
//包含联合b的新列表
列表联合=新数组列表(a);
联合.阿达尔(b);
要在列表视图中显示,您需要一个适配器和一个列表视图。我建议您阅读《Android开发者指南》中有关ListView的教程:
公共类HelloListView扩展了ListActivity{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
列表b=新的ArrayList();
b、 添加(“Boo”);
b、 添加(“Boo”);
b、 添加(“Boo”);
setListAdapter(新阵列适配器)(此,
android.R.layout.simple_list_item_1,b));
}
}
将两个ArrayList合并为一个
请参考两个列表的示例代码
如何在列表视图中显示这些项目:
您的布局应该是(正如我使用的main.xml)
快乐编码
如果列表
(如列表
和列表
)具有不同的数据类型
List-stringsList=new-ArrayList();
添加(“字符串”);
stringsList.add(“另一个字符串”);
stringsList.add(“和一个以上”);
List integersList=new ArrayList();
integersList.add(1337);
integersList.add(1338);
integersList.add(1339);
//包含表单中所有项目的新列表
//stringsList和IntegerList
List allIWeHave=new ArrayList();
allIWeHave.addAll(stringsList);
allIWeHave.addAll(整数列表);
//提取时,请检查项目是否为整数或字符串
if(allIWeHave.get(0)instanceof Integer){
//整数值
}否则{
//字符串值
}
那么为什么不将第二个列表的项目添加到第一个列表中呢?使用listOne.addAll(listwo)为什么要将问题回滚两次?不管怎么说,它最终还是被Sathya修改了。很抱歉,这只是一次意外……两种不同的数据类型如何?@Mr.Hyde ArrayList不能包含不同数据类型的数据。所以你不能这么做。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="0dip"
android:background="@android:color/transparent">
<ListView
android:id="@+id/custom_list_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:fastScrollEnabled="true"
android:background="@android:color/transparent"
android:fadeScrollbars="true"
android:layout_gravity="top"
android:padding="2dp">
</ListView>
</LinearLayout>
public class CustomListView extends Activity {
ArrayList<String> firstname1;
ArrayList<String> first;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
firstname1 = new ArrayList<String>();
first = new ArrayList<String>();
//Let both array list having some data
firstname1.add("firstname1_data1");
firstname1.add("firstname1_data2");
firstname1.add("firstname1_data3");
firstname1.add("firstname1_data4");
firstname1.add("firstname1_data5");
firstname1.add("firstname1_data6");
firstname1.add("firstname1_data7");
firstname1.add("firstname1_data8");
firstname1.add("firstname1_data9");
firstname1.add("firstname1_data10");
first.add("first_data1");
first.add("first_data2");
first.add("first_data3");
first.add("first_data4");
first.add("first_data5");
first.add("first_data6");
first.add("first_data7");
first.add("first_data8");
first.add("first_data9");
first.add("first_data10");
//Now copying value of first to firstname, as your requirement
//Please refer http://www.java-examples.com/append-all-elements-other-collection-java-arraylist-example for sample code to concat two lists.
firstname1.addAll(first);
//Lets show your data into list view
// Get a handle to the list view
ListView lv = (ListView) findViewById(R.id.custom_list_view);
lv.setAdapter(new ArrayAdapter<String>(CustomListView.this,
android.R.layout.simple_list_item_1, firstname1));
//Please refer http://developer.android.com/reference/android/widget/ListView.html for details of setAdapter()
}
}
List<String> stringsList= new ArrayList<>();
stringsList.add("A string");
stringsList.add("another string");
stringsList.add("and one more");
List<Integer> integersList = new ArrayList<>();
integersList.add(1337);
integersList.add(1338);
integersList.add(1339);
// New list containing all the items form
// stringsList and integersList
List<Object> allIWeHave= new ArrayList<>();
allIWeHave.addAll(stringsList);
allIWeHave.addAll(integersList);
//while fetching you check either item is Integer or String
if(allIWeHave.get(0) instanceof Integer){
//Integer value
}else{
//String value
}