我想从另一个活动收到的ArrayList中填充一个列表视图,但是我不知道如何仅显示国家名称。
这是我尝试过的。这只会显示我国家的地址,而不是名称。
lv = (ListView) findViewById(R.id.listViewCountries);
lv.setAdapter(new ArrayAdapter<>(this,android.R.layout.simple_list_item_1, countries));
我希望有一个只列出国家名称的listView,当我按其中一个国家打开活动以显示有关该国家的信息时。
答案 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);
}
我不知道这对您来说清楚吗?