1

我的代码是:

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
        }
        }
    );

我在微调器中实现了 setSelectedItem 为:

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

我想在选择项目时显示吐司。它不应自动显示。

4

1 回答 1

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
    }
    }
);
于 2013-09-24T03:45:26.780 回答