繁体   English   中英

如何从 arrayList 从 object 获取属性

[英]How to get an attribute from an object from an arrayList

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

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

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

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

我希望有一个列表视图,其中仅包含国家/地区的名称,并且当我按下其中一个以打开活动以显示有关该国家/地区的信息时。

因为您使用的是默认实现,例如FragmentList ,所以您已经为项目列表预构建了 xml ,因此无法以正确的方式更改它。 您需要使用新的RecyclerView来实现您的自定义实现。

在问这个问题之前,请搜索信息。 您可以在另一个答案中找到基本示例。

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

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

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

由于您以相同的顺序添加它们,因此它们的索引将与您的国家/地区数组中的索引相同,那么如果您想返回 à country,例如,在您的 onselected 项目侦听器中,您只需要输出 sthg 之类的

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);
    }

不知道你说清楚了吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM