我有来自网络服务的json
:
[{"id_mata_kul":"2","mata_kul":"Oracle Database"},{"id_mata_kul":"3","mata_kul":"Pengatar Manajemen dan Bisnis"},{"id_mata_kul":"5","mata_kul":"Leadership"}]
然后我可以在微调器中显示mata_kul
对象,但是我需要从mata_kul
获取id而不将id显示到微调器中,
问题:
我需要保存所选mata_kul
的ID。
示例:从spinner中选择Leadership
时,我需要使用intent保存id 5
。以及另一个,当从微调器中选择Oracle Database
时,我需要使用intent保存id 2
,
我看过this post和我一样的问题,但我不知道它是如何运作的,
有人可以帮助我解决问题吗?
编辑:
doInBackground
中的:
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsonObject = jArray.getJSONObject(i);
list2.add(jsonObject.getString("mata_kul")); //collecting all json `mata_kul`
}
onPostExecute
中的:
listItems2.addAll(list2);
adapter2.notifyDataSetChanged();
onCreate
中的:
adapter2= new ArrayAdapter<>(this, R.layout.spinner_layout, R.id.txt, listItems2);
答案 0 :(得分:1)
尝试这种方式来获取ID
mySpinner
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int position, long arg3) {
// TODO Auto-generated method stub
// Locate the textviews in activity_main.xml
TextView txtrank = (TextView) findViewById(R.id.rank);
TextView txtcountry = (TextView) findViewById(R.id.country);
TextView txtpopulation = (TextView) findViewById(R.id.population);
// Set the text followed by the position
txtrank.setText("Rank : "
+ world.get(position).getRank());
txtcountry.setText("Country : "
+ world.get(position).getCountry());
txtpopulation.setText("Population : "
+ world.get(position).getPopulation());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
}
http://www.androidbegin.com/tutorial/android-populating-spinner-json-tutorial/
答案 1 :(得分:0)
您可以使用Hashmap解决您的问题。将您的id值作为键和mata_kul部分存储为Hashmap中的值。然后使用Hashmap值在微调器中显示。单击某个项目时,使用该值从哈希映射中查找相应的ID。
答案 2 :(得分:0)
覆盖Spinner OnItemclickListener并获取所选项目位置
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int selectedItemPos = position;
//use selectedItemPos to retrieve id values from json array
}
答案 3 :(得分:0)
首先,创建一个模型来存储来自Web服务的json值。 然后使用此模型创建自定义适配器。 并处理微调器的项目选择事件:
extension ViewController : UICollectionViewDataSource,UICollectionViewDelegate {
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! MyCollectionViewCell
cell.myLabel.text = "ABCD"
return cell;
}
}