android arraylist用法,Android Spinner使用ArrayList <String>

本文探讨如何将Java ArrayList<String>替换XML资源文件中的数据,实现在Android Spinner组件中的下拉列表显示,以实现动态数据源配置。

到目前为止,我一直在使用来自XML字符串数组的微调器的值:

Spinner karant_sp;

karant_sp = (Spinner) findViewById(R.id.spinner1);

ArrayAdapter karant_adapter = ArrayAdapter.createFromResource(this, R.array.karant_list, android.R.layout.simple_spinner_item);

karant_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

karant_sp.setAdapter(karant_adapter);

karant_sp.setSelection(0);

karant_sp.setOnItemSelectedListener(new select_karant());

我可以使用本地java ArrayList-String作为要在下拉菜单中显示的项目列表吗?

就像是:

Spinner karant_sp;

ArrayList return_likes = new ArrayList();

return_likes.add("Hello");

return_likes.add("world");

karant_sp = (Spinner) findViewById(R.id.spinner1);

ArrayAdapter karant_adapter = ArrayAdapter.createFromResource(this, return_likes, android.R.layout.simple_spinner_item);

karant_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

karant_sp.setAdapter(karant_adapter);

karant_sp.setSelection(0);

karant_sp.setOnItemSelectedListener(new select_karant());

我知道上面的代码不起作用,但我想知道使用ArrayList-string工作的东西.

for (int i = 0; i < MainActivity.carTypeBean.size(); i++) { carTypeBeanList.add(MainActivity.carTypeBean.get(i)); } // 获取所有汽车名称、价格、里程、年龄 List<String> names = new ArrayList<>(); List<String> prices = new ArrayList<>(); List<String> mileages = new ArrayList<>(); List<String> ages = new ArrayList<>(); for (CarTypeBean car : carTypeBeanList) { names.add(car.getSalename()); prices.add(car.getPrice()); mileages.add(car.getMileage()); ages.add(car.getAge()); } // 去除重复项 List<String> uniqueNames = new ArrayList<>(new LinkedHashSet<>(names)); List<String> uniquePrices = new ArrayList<>(new LinkedHashSet<>(prices)); List<String> uniqueMileages = new ArrayList<>(new LinkedHashSet<>(mileages)); List<String> uniqueAges = new ArrayList<>(new LinkedHashSet<>(ages)); // 创建适配器 ArrayAdapter<String> nameAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, uniqueNames); ArrayAdapter<String> priceAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, uniquePrices); ArrayAdapter<String> mileageAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, uniqueMileages); ArrayAdapter<String> ageAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, uniqueAges); // 设置下拉框样式 nameAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); priceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mileageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); ageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 绑定适配器 spinnerName.setAdapter(nameAdapter); spinnerPrice.setAdapter(priceAdapter); spinnerMileage.setAdapter(mileageAdapter); spinnerAge.setAdapter(ageAdapter); spinnerName.setPrompt("品牌"); spinnerPrice.setPrompt("价格"); spinnerMileage.setPrompt("年龄"); spinnerAge.setPrompt("公里数"); AdapterView.OnItemSelectedListener itemSelectedListener = new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, android.view.View view, int position, long id) { String selectedName = spinnerName.getSelectedItem().toString(); String selectedPrice = spinnerPrice.getSelectedItem().toString(); String selectedMileage = spinnerMileage.getSelectedItem().toString(); String selectedAge = spinnerAge.getSelectedItem().toString(); List<CarTypeBean> filteredCars = new ArrayList<>(); for (CarTypeBean car : carTypeBeanList) { if (car.getSalename().equals(selectedName) && car.getPrice().equals(selectedPrice) && car.getMileage().equals(selectedMileage) && car.getAge().equals(selectedAge)) { filteredCars.add(car); } } // 显示查询结果 List<CarTypeBean> carTypeBeans = new ArrayList<>(); for (CarTypeBean car : filteredCars) { String salename = car.getSalename(); int img = car.getImg(); String age = car.getAge(); String price = car.getPrice(); String mileage = car.getMileage(); carTypeBeans.add(new CarTypeBean(salename,img,price,age,mileage)); } searchAdapter = new SearchAdapter(carTypeBeans); rv.setLayoutManager(new GridLayoutManager(HotActivity.this,2)); rv.setAdapter(searchAdapter); } @Override public void onNothingSelected(AdapterView<?> parent) { // 未选中任何项时的处理 } }; spinnerName.setOnItemSelectedListener(itemSelectedListener); spinnerPrice.setOnItemSelectedListener(itemSelectedListener); spinnerMileage.setOnItemSelectedListener(itemSelectedListener); spinnerAge.setOnItemSelectedListener(itemSelectedListener);, 添加 spinnerName.setPrompt("品牌");提示没效果
最新发布
11-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值