如何从arrayList

时间:2019-11-05 20:11:36

标签: java android listview arraylist

我想从另一个活动收到的ArrayList中填充一个列表视图,但是我不知道如何仅显示国家名称。

这是我尝试过的。这只会显示我国家的地址,而不是名称。

lv = (ListView) findViewById(R.id.listViewCountries);

lv.setAdapter(new ArrayAdapter<>(this,android.R.layout.simple_list_item_1, countries));

我希望有一个只列出国家名称的listView,当我按其中一个国家打开活动以显示有关该国家的信息时。

2 个答案:

答案 0 :(得分:0)

由于使用的是默认实现,例如['TOBY', 'JAMES', 'KATE', 'GEORGE', 'JAMES', 'RICK', 'ALEX', 'JEIN', 'ALEX', 'ALEX', 'GEORGE', 'JEIN', 'KATE', 'MEDELIN'],因此您已经为项目列表预先构建了xml,因此无法以正确的方式进行更改。您需要使用新的FragmentList实现自定义实现。

在询问此问题之前,请先搜索信息。您可以find in another answer使用基本示例。

答案 1 :(得分:0)

您可以创建另一个数组,例如:

Arraylist <String> array2 = new ArrayList() ;
for (Country country : countries){
 array2.add(country.getname())}

然后在微调器中,放置array2而不是国家。

由于您以相同的顺序添加了它们,因此它们的索引将与国家(地区)数组中的索引相同,因此,如果您想返回国家(例如),则在选定的项目侦听器中,您只需要像

Country selectedcountry = countries.get(position);

这是我用于联系人列表的方法:

String [] contractList = new String[user.getUserContractsList().size()];
        for (int i = 0; i < user.getUserContractsList().size(); i ++){
            contractList[i] = user.getUserContractsList().get(i).getCONTRACT_NAME();
        }
        //Setting the spinner
        ArrayAdapter adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, contractList);
        spin.setAdapter(adapter);
        spin.setOnItemSelectedListener(this);

然后在用户选择一个项目时取回联系值:

@Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        contract = user.getUserContractsList().get(position);
    }

我不知道这对您来说清楚吗?