如何自动在Spinner上禁用OnClick事件?

时间:2013-09-24 03:27:19

标签: android android-spinner

我的代码是:

spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View arg1,
                int position, long id) {
                Toast.makeText(getApplicationContext(), "item selected",
                    Toast.LENGTH_SHORT).show();
            }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
        }
    );

我在spinner中实现了setSelectedItem:

spin2.setSelection(new Date().getMonth());

我希望在选择项目时显示toast。它不应自动显示。

1 个答案:

答案 0 :(得分:2)

此处Toast不会自动显示。

您正在使用spin2.setSelection(new Date().getMonth());以编程方式选择项目。 所以每当这一行执行OnItemSelectedListener时都会被调用。

要摆脱这种情况,你应该使用一些标志(布尔变量)。

类似这样的事情

//set flag to false before selection
spin2.setSelection(new Date().getMonth());


spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1,
            int position, long id) {
         if(flag is true){
            Toast.makeText(getApplicationContext(), "item selected",
                Toast.LENGTH_SHORT).show();
             }else{
                 //then set flag to true here
             }
        }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
    }
);