2013-12-21 65 views
0

嗨,我有從ArrayList(工作列表)的微調(SpinnerP)。在工作表最後一個元素「添加」OnClickListener()上最後一個Spinner的元素

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinneritem, worklist); 
     dataAdapter.setDropDownViewResource(R.layout.custom_spinner); 
     SpinnerP.setAdapter(dataAdapter); 

微調做工精細,但我需要創造這樣onClickListener在微調最後一個元素。這將是添加到微調的行動。我怎樣才能做到這一點 ?

當我使用Spinner.setOnItemSelectedListener(新OnItemSelectedListener(),我有2個錯誤

Multiple markers at this line 
    - OnItemSelectedListener cannot be resolved to a type 
    - The method setOnItemSelectedListener(AdapterView.OnItemSelectedListener) in the type AdapterView<SpinnerAdapter> is not applicable for the 
    arguments (new OnItemSelectedListener(){}) 
+0

您需要導入'onItemSelectedListener'這樣的:'進口android.widget.AdapterView.OnItemSelectedListener;'你所有的其他進口都在哪裏。另外,發佈你的新代碼。 – hichris123

+0

發佈您正在使用的新代碼。 – hichris123

+0

你是什麼意思?你的意思是從你的角度來看「spinner」?只需發佈你的代碼?和刪除評論有什麼關係? – hichris123

回答

1

設置一個onItemSelectedListener,然後檢查它是否是該項目,例如:

Spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

       String selectedValue = arg0.getItemAtPosition(arg2).toString(); 

       if(selectedValue.equals("add")){ 
          // add item to spinner 
       } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 
    });  

你需要導入onItemSelectedListener這樣:

import android.widget.AdapterView.OnItemSelectedListener; 
0

spinner.setOnItemSelectedListener(新OnItemSelectedListener(){ @覆蓋 公共無效onItemSelected(適配器視圖parentView,查看selectedItemView,INT位置,長的id){ //在這裏,您再檢查,這是最後一個項目或者沒有,那麼採取行動。 如果((worklist.size() - 1)==位置) {} }

   @Override 
       public void onNothingSelected(AdapterView<?> parentView) { 
        // your code here 
       } 

      }); 
0

接受的答案的工作,但我認爲這是不乾淨檢查的字符串值所選項目是最後一個項目的字符串。 AdapterView提供了返回項目總數的方法getCount()。現在,您可以檢查所選項目的位置(當然+1)相匹配的總數:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      if(parent.getCount() == position + 1) {// last item 
       // your code here 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    });