如何从特定项打开编辑文本是从微调器中选择的

时间:2014-04-04 12:04:48

标签: android

我构建了一个微调器,在其中我将元素放入数组列表中.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();
}

2 个答案:

答案 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 {}} dialoglistener上的dialog button call

答案 1 :(得分:0)

为什么你使用自定义适配器,当点击微调器获取被点击项目的位置并显示弹出和开启按钮时,使用先前存储的索引将值设置为faulttypespinner arraylist。然后为适配器添加notifydatasetchanged来更新所有的微调器。