2012-07-02 2 views
0

У меня есть счетчик для каждого продукта. spinner имеет варианты продукта (например, вес 10 фунтов, 20 фунтов и т. д.) также есть опция второго уровня тоже, как цвет.Spinner setOnItemSelectedListener не запускается

Для этого я хотел, чтобы клиент выбирал первый вес после связывания такого же счетчика с цветом. но я не могу запустить spinner fire setOnItemSelectedListener.

Спасибо за ваше время!

ddlOptions = (Spinner) lnr.findViewById(R.id.ddlOptions); 
ddlOptions.setId(products.get(i).ID); 
SpinnerBind(ddlOptions, products.get(i).ID, -1); 


ddlOptions.setOnItemSelectedListener(new OnItemSelectedListener() { 
    int first = 0; 
    int ProductId = ddlOptions.getId(); 

    @Override 
    public void onItemSelected(AdapterView <? > parentView, View selectedItemView, int position, long id) { 
     if (first != 0) { 
      SpinnerBind(ddlOptions, ProductId, mItems.get(position).getId()); 
     } else first = 1; 
    } 

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

}); 




public static class Element { 
    private String mText; 
    private int mId; 

    public Element(String text, int id) { 
     mText = text; 
     mId = id; 
    } 

    public int getId() { 
     return mId; 
    } 

    public void setId(int id) { 
     mId = id; 
    } 

    public String getmText() { 
     return mText; 
    } 

    public void setmText(String mText) { 
     this.mText = mText; 
    } 

    @Override 
    public String toString() { 
     return mText; 
    } 
} 

private List <Element> mItems; 



public void SpinnerBind(Spinner ddlOptions, int ProductId, int ParentId) { 
    mItems = new ArrayList <MainScreen.Element>(); 
    ArrayList <String> optionNames = new ArrayList <String>(); 
    ArrayList <ProductOption> productOptions = this.dhn.GetProductOptions(ProductId, ParentId); 

    for (int i = 0; i < productOptions.size(); i++) { 
     mItems.add(new Element(productOptions.get(i).OptionName, productOptions.get(i).ID)); 
    } 

    ArrayAdapter <MainScreen.Element> adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, mItems); 

    ddlOptions.setAdapter(adapter); 
} 
+0

Я думаю, что есть проблема с моим адаптером, прядильщик не считает, что я что-то выбираю. – Mert

ответ

2

Это была глупая проблема. Просто нужен второй предмет на spinner. Spinner не срабатывает, когда выбран тот же элемент.

Смежные вопросы