例如,我有一个JSON对象数组
"data": {
"id": 20,
"name" : "Car"
},
"data": {
"id": 2,
"name" : "Bus"
},
"data": {
"id": 30,
"name" : "Bike"
}
我正在从数据库中获取这些值并将其存储在共享的首选项中
SharedPreferences vehicleData = getSharedPreferences("vehicleData", Context.MODE_PRIVATE);
SharedPreferences.Editor vehicleEditor = vehicleData.edit();
vID.append(vt.get(i).getId()).append(",");
vName.append(vt.get(i).getTypeName()).append(",");
我的android应用中有一个微调框,其中将值显示为“汽车”,“公共汽车”,“自行车”等(从共享首选项开始)。
SharedPreferences vehicleData = getSharedPreferences("vehicleData", Context.MODE_PRIVATE);
String ids = vehicleData.getString("vehicle_type_id", "");
final String names = vehicleData.getString(ids, "");
String[] singleName = names.split(",");
String[] singleID = ids.split(",");
typeSpinner = findViewById(R.id.vehicle_type_spinner);
ArrayList<String> namelist = new ArrayList<>();
for (int i = 0; i < singleName.length; i++) {
namelist.add(singleID[i].concat(" ".concat(singleName[i])));
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, namelist);
typeSpinner.setAdapter(adapter);
并以此方式获得微调器值
String typeName = String.valueOf(typeSpinner.getSelectedItem());
我想要做的是,当用户从微调器(例如,汽车)中选择一个值时,我想将该值的ID(即1)存储在变量中。
我想这是一个非常基本的问题,但我无法解决。我怎样才能做到这一点?
答案 0 :(得分:2)
我希望这段代码可以为您提供帮助:
private void initSpinner() {
List<Data> listOfData = new ArrayList<>();
listOfData.add(new Data(1,"Car"));
listOfData.add(new Data(2,"Bus"));
listOfData.add(new Data(3,"Bike"));
List<String> listOfNames = new ArrayList<>();
for (Data data : listOfData) {
listOfNames.add(data.getName());
}
spinner.setItems(listOfNames);
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override
public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
long selectedDataId = listOfData.get(position);
String selectedDataName = listOfNames.get(position);
}
});
}