单击“微调器”时更改适配器

时间:2011-12-25 17:20:09

标签: android onclick spinner adapter

我需要在点击它时完全更改我的微调器的适配器。

我正在尝试使用“Make Your choice”值显示一个Spinner,然后当用户单击时,Spinner上会加载另一个适配器并且他可以做出选择(不显示“Make Your choice”)。

这是我的代码

ArayAdapter adapterclasse = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.classes);
ArrayAdapter adaptermodule = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.matiers);
spinner.setAdapter(adapterclasse);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        spinner.setAdapter(adaptermodule);
    }

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

但它不起作用。当应用程序启动时,我加载了第二个适配器而不是第一个。

请帮助和谢谢。

2 个答案:

答案 0 :(得分:0)

设置了第二个适配器,因为当加载微调器时,会调用onItemSelected方法,这是正常的(选择了第一个元素)。

无论如何,一般来说我认为你不需要2个适配器,你可以把“Make your choise”放在top和onItemSelected如果用户选择了它,你可以阻止他并要求选择一个真实的值。 / p>

答案 1 :(得分:0)

实际上,当用户触摸视图(微调器)

时,可以加载新的适配器
spinner.setOnTouchListener(new OnTouchListener()
{      
    @Override
    public boolean onTouch(View v, MotionEvent event) 
    {
        spinner.setAdapter(adapterclasse2);
        return false;
    }

});