【问题标题】:Populate a spinner based on the selection of another spinner根据另一个微调器的选择填充微调器
【发布时间】:2017-04-03 03:35:13
【问题描述】:

我必须根据所选国家/地区填充州。我还必须捕获在其他spinners 中选择的项目。但是侦听器方法没有被调用。

countriesSpinner.setOnItemSelectedListener(this);
statesSpinner.setOnItemSelectedListener(this);
yearSpinner.setOnItemSelectedListener(this);

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    switch(view.getId()){
        case R.id.countriesSpinner:
        {
            Log.i("selected country",selectedCountry);
            selectedCountry = parent.getItemAtPosition(position).toString();
            populateStates();
            ArrayAdapter stateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states);
            statesSpinner.setAdapter(stateAdapter);
        }
        break;

        case R.id.statesSpinner:
        {
            selectedState=parent.getItemAtPosition(position).toString();
        }
        break;

        case R.id.yearSpinner:
        {
            selectedYear = parent.getItemAtPosition(position).toString();
        }
    }



}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

【问题讨论】:

    标签: android spinner actionlistener


    【解决方案1】:

    您的 Switch Id 错误...您需要使用 parent.getId()

    试试这个:

     public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        switch (parent.getId()) 
        {         
            case R.id.countriesSpinner:
    
                Log.i("selected country",selectedCountry);
                selectedCountry = parent.getItemAtPosition(position).toString();
                populateStates();
                ArrayAdapter stateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states);
                statesSpinner.setAdapter(stateAdapter);
                break;              
    
            case R.id.statesSpinner:
                selectedState=parent.getItemAtPosition(position).toString();
                break;              
             case R.id.yearSpinner:
                selectedYear=parent.getItemAtPosition(position).toString();
                break;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多