我构建了一个微调器,在其中我将元素放入数组列表中.i将变量中的get selcted项的值存储在变量中,在我的微调器中它有15个元素,现在我想在选择特定项时尝试从spinner然后打开一个对话框,其中包含编辑文本和按钮,然后用户可以编辑并将其保存在spinner中。我可以这样做。
我的微调器代码是
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.faultid);
addItemsOnSpinner2();
addListenerOnSpinnerItemSelection();
}
public void addListenerOnSpinnerItemSelection()
{
Spinner faultSpinner = (Spinner) findViewById(R.id.spinner1);
mspinner.setOnItemSelectedListener(new
CustomOnItemSelectedListener());
}
public void addItemsOnSpinner2() {
ArrayList<String> faulttypespinner = new ArrayList<String>();
faulttypespinner.add("XL-Cross Level");
faulttypespinner.add("AL-Alignment");
faulttypespinner.add("UN-Unevenness");
faulttypespinner.add("XL-Cross Level");
faulttypespinner.add("AL-Alignment");
faulttypespinner.add("UN-Unevenness");
faulttypespinner.add("BD-Ballast Deficiency");
faulttypespinner.add("SE-Super elevation on curve");
faulttypespinner.add("LP-Loose Packing");
faulttypespinner.add("LJ-Low Joint");
faulttypespinner.add("BA-Bridge");
faulttypespinner.add("LC-Level Crossing");
faulttypespinner.add("LJ-Low Joint");
faulttypespinner.add("P and C-Point n Xing");
faulttypespinner.add("OTH-Other Defect");
faulttypespinner.add("SEJ-SEJ");
faulttypespinner.add("WEED-Weed on Cess");
ArrayAdapter<String> faultadapter = new ArrayAdapter<String>
(mConetxt,android.R.layout.simple_spinner_item, faulttypespinner);
faultadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mspinner.setAdapter(faultadapter);
}
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " +
parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:0)
你需要implement Custom Adapter
,你将拥有类似的方法:
public void changeItemValue(int position, String newValue){
Item itm = getItem(position);
itm.setValue(newValue);
notifyDataSetChanged();
}
当您打开dialogBox
onSelectedItem
时,您必须将instance
的{{1}}传递给spinner adapter
,然后传递给{{} 1 {}} dialog
,listener
上的dialog button
call
。
答案 1 :(得分:0)
为什么你使用自定义适配器,当点击微调器获取被点击项目的位置并显示弹出和开启按钮时,使用先前存储的索引将值设置为faulttypespinner arraylist。然后为适配器添加notifydatasetchanged来更新所有的微调器。