java - 遍历ArrayList以在第二个Activity Java中显示在多行ListView中?

我创建了第二个活动,以显示ArrayList中的所有元素。例如,如果ArrayList在MainActivity中包含以下内容:

//This is an Object type
thingsList = ["This is list1","This is list2"]; 

Intent intent = new Intent(this, Activity2.class);
Bundle b = new Bundle;
b.putString("Lists", thingsList.toString());
intent.putExtras(b);
startActivity(intent);


我在Activity2.java中有这个

ListView newListView = (ListView)findViewById(R.id.newListView);
Bundle b = getIntent().getExtras();
String newList = b.getString("Lists");
ArrayAdapter adapterList = new ArrayAdapter(this, R.layout.list_label, Collections.singletonList(newList));
newListView.setAdapter(adapterList);


现在它的作用是:

[This is list1, This is list2]


我如何遍历arraylist并使它显示在不同的行上

This is list1
This is list2


我尝试这样做,但是没有用

thingsList = ["This is list 1","This is list 2"];

Intent intent = new Intent(this, Activity2.class);
Bundle b = new Bundle;
for (Object makeList: thingsList) {
    b.putString("Lists", makeList.toString());
    intent.putExtras(b);
}
startActivity(intent);


它所做的只是抓住arraylist中的最后一个元素,例如

This is list2


在此先感谢,不确定该问题是否有意义。

最佳答案

您将要使用Bundle.putStringArrayList()而不是putString()。而且,在使用Intent时,您实际上可以跳过Bundle步骤,并将其他功能直接添加到Intent中(Android会在后台为您创建并填充Bundle)。

我不确切知道您如何获得thingsList引用,但是如果它只是通用的List,最安全的做法是在将其添加到捆绑包之前构造一个新的ArrayList

thingsList = ["This is list1","This is list2"]; 

// you can skip this if thingsList is already an ArrayList
ArrayList<String> thingsArrayList = new ArrayList<>(thingsList);

Intent intent = new Intent(this, Activity2.class);
intent.putStringArrayListExtra("Lists", thingsArrayList); // or use thingsList directly
startActivity(intent);


然后,另一方面,您想将其作为List获取。同样,您可以跳过Bundle并直接访问Intent其他功能:

ListView newListView = (ListView)findViewById(R.id.newListView);
List<String> newList = getIntent().getStringArrayListExtra("Lists");
ArrayAdapter adapterList = new ArrayAdapter(this, R.layout.list_label, newList);
newListView.setAdapter(adapterList);

本文翻译自 https://stackoverflow.com/questions/52472115/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 java android listview arraylist


相关文章:

android - 如何在android中输入edittext时更新textview

android - 使用ListAdapter使用simple_list_item_2在listview中显示ContactName和Number,如何仅在onItemClick()中提取Number?

android - ViewFlipper中的listView-滚动问题

java - 如何在Spring WebClient中捕获ConnectionException?

java - Android Froyo:使用信任目标服务器中所有套接字工厂结果的https连接无法响应

java - RSS阅读器为ListView创建自定义适配器

c# - ListView无法使用ObservableCollection正确更新

java - 自定义列表视图适配器具有空NullPointerException错误

java - 通过单击异步gridview中的图像访问上下文操作菜单时,防止活动重新加载

android - 如何确保WorkManager取消我的工人?