update spinner数组取决于其他选择

时间:2012-10-14 11:22:36

标签: android android-spinner

Spinner spinner, spinner2;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_check_box_tuts);

        spinner = (Spinner)findViewById(R.id.spinner1);
        spinner2 = (Spinner)findViewById(R.id.spinner2);
        spinner.setOnItemSelectedListener(this);

    }
    @Override
    public void onItemSelected(AdapterView<?> v, View arg1, int arg2,
            long arg3) {
        switch(v.getId()){
        case R.id.spinner1:
            if(spinner.getSelectedItemPosition() == 1){
                //what goes here??
            break;
        }
        }
    }

就像我的第一个微调器列表是国家:USA,JAPAN等。所以在选择USA之后,我的第二个微调器将能够获得美国州阵列表..

我使用我的新手逻辑尝试这样思考:将第二个微调器设置为View.GONE,然后如果让我们选择USA,则显示spinner2它单独携带状态..但如果我有60个国家,然后我必须有60个旋转器,这很有趣所以帮助我:D

1 个答案:

答案 0 :(得分:0)

不是为每个国家/地区实例创建Spinner,而是保持相同的Spinner,并在从您的第一个Spinner中选择一个值时替换存储在其中的数据 ArrayAdapter.createFromResource()Spinner.setAdapter()Here是使用这两个调用的示例。

在第一个选项中选择一个选项之前,不要隐藏第二个Spinner,而是考虑在第一个Spinner中选择默认选项,并使用匹配数据填充第二个选项。在您的示例中,USA将是一个很好的默认选择。