2 个动态创建的微调器 -> 但只有 1 个 onItemSelected

2 dynmically created spinners -> but only 1 onItemSelected

我在 1 个 Activity 中得到了 2 个动态创建的微调器。

private void populateSpinner() {
    AlertDialog.Builder adb2 = new AlertDialog.Builder(this);
    LayoutInflater adbInflater2 = LayoutInflater.from(this);
    View SpinnerLayout = adbInflater2.inflate(R.layout.spinner, null);
    adb2.setView(SpinnerLayout);
    adb2.setTitle("Kostenstelle auswählen:");
    spinnerKOST = (Spinner) SpinnerLayout.findViewById(R.id.spinner);
    List<String> lables = new ArrayList<String>();
    lables.add("");
    spinnerKOST.setSelection(1, false);
    for (int i = 0; i < KostList.size(); i++) {
        lables.add(KostList.get(i).getKost());
    }
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>
    (this,android.R.layout.simple_spinner_dropdown_item, lables);
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // attaching data adapter to spinner
    spinnerKOST.setAdapter(spinnerAdapter);
    // use .create to get the AlertDialog 
    AlertDialog dialog =  adb2.create();
    // set an OnShowListener
    dialog.setOnShowListener(new DialogInterface.OnShowListener() {
        public void onShow(DialogInterface dialog) {
            spinnerKOST.setOnItemSelectedListener(StaffActivity.this);

        }
    });
    dialog.show();       
}

第二个:

private void populateSpinner2() {
    AlertDialog.Builder adb2 = new AlertDialog.Builder(this);
    LayoutInflater adbInflater2 = LayoutInflater.from(this);
    View SpinnerLayout = adbInflater2.inflate(R.layout.spinner, null);
    adb2.setView(SpinnerLayout);
    adb2.setTitle("Box auswählen:");
    spinnerBox = (Spinner) SpinnerLayout.findViewById(R.id.spinner);
    List<String> lables = new ArrayList<String>();
    lables.add("");
    spinnerBox.setSelection(1, false);
    for (int i = 0; i < BoxesList.size(); i++) {
        lables.add(BoxesList.get(i).getBoxer_mail());
    }
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>
    (this,android.R.layout.simple_spinner_dropdown_item, lables);
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerBox.setAdapter(spinnerAdapter);
    AlertDialog dialog =  adb2.create();
    dialog.setOnShowListener(new DialogInterface.OnShowListener() {
        public void onShow(DialogInterface dialog) {
            spinnerBox.setOnItemSelectedListener((OnItemSelectedListener) StaffActivity.this);

        }
    });
    dialog.show();       
}

如您所见,它们非常相似。

通常我对每个微调器使用 1 public void onItemSelected(AdapterView<?> parent, View view, int position, long id)

之前我每个 Activity 和 1 个 public void onItemSelected 只有 1 个 Spinner。 现在我在 Activity 中得到了 2 个 Spinner,但仍然有 1 个 public void onItemSelected

如何使用两个旋转器?

使用两个微调器并在它们之间切换视图可见和不可见

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

 Spinner spinner = (Spinner) parent;
 if(spinner.getId() == R.id.spinner1)
 {
      //spinner1            
 }
 else if(spinner.getId() == R.id.spinner2)
 {
      //spinner2
 }

}