Ich erstelle eine App für einen Freund von mir (während ich Java-/Android-Apps erlerne), wo seine Kunden eine Reihe von Spinner verwenden können, die den Preis eines bestimmten Produkts auswählen.Spinnerauswahl beibehalten, wenn andere Spinneränderungen vorgenommen werden
Ich bin im Moment mit den Spinner ein wenig fest, ich bekomme endlich, wie sie alle zusammen hängen und ich habe es geschafft, einen Code zu erstellen, der die Optionen eines Spinner basierend auf der Auswahl des vorherigen Spinner festlegen wird.
Dies funktioniert, bis die Auswahl auf einem anderen Spinner getroffen wird. beispielsweise. "single speed" ist auf Spinner 1 ausgewählt. "4" ist auf Spinner 2 ausgewählt. "hook" ist auf Spinner 3 ausgewählt, Spinner 2 wird zurückgesetzt.
Wie kann ich verhindern, dass meine dynamischen Spinner zurückgesetzt werden, sobald ein anderer Spinner ausgewählt wird?
Schließlich werde ich alle Spinner dynamisch aufbauen, da unterschiedliche Auswahlmöglichkeiten bestimmen, welche Optionen verfügbar sein sollen.
Vielen Dank im Voraus. (Schätzen Sie es nicht brillant geschrieben, hoffentlich werden Verbesserungen im Laufe der Zeit kommen).
public class priceList extends Activity implements AdapterView.OnItemSelectedListener{
Spinner capacity;
Spinner speed;
Spinner hoistSpeed;
Spinner type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_price_list);
//Spinner for Capacity
capacity = (Spinner) findViewById(R.id.capacityTextView);
ArrayAdapter adapterCapa=ArrayAdapter.createFromResource(this,R.array.arrayCapacity, android.R.layout.simple_spinner_item);
capacity.setAdapter(adapterCapa);
capacity.setOnItemSelectedListener(this);
//Spinner for the Speed
speed = (Spinner) findViewById(R.id.speedTextView);
ArrayAdapter adapterSpd = ArrayAdapter.createFromResource(this,R.array.arraySpeed, android.R.layout.simple_spinner_item);
speed.setAdapter(adapterSpd);
speed.setOnItemSelectedListener(this);
//Spinner for the type
type = (Spinner) findViewById(R.id.typeTextView);
ArrayAdapter adapterBeam=ArrayAdapter.createFromResource(this,R.array.arrayType, android.R.layout.simple_spinner_item);
type.setAdapter(adapterBeam);
type.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
//TextView myText = (TextView) view;
//Toast.makeText(this, myText.getText(), Toast.LENGTH_SHORT).show();
hoistSpeed = (Spinner) findViewById(R.id.hoistSpeedTextView);
ArrayAdapter adapterTypeA=ArrayAdapter.createFromResource(this,R.array.arrayHoistSpeedSingle, android.R.layout.simple_spinner_item);
hoistSpeed = (Spinner) findViewById(R.id.hoistSpeedTextView);
ArrayAdapter adapterTypeB=ArrayAdapter.createFromResource(this,R.array.arrayHoistSpeedDouble, android.R.layout.simple_spinner_item);
if(speed.getSelectedItem().toString().equals("Single Speed"))
{
hoistSpeed.setAdapter(adapterTypeA);
}
else if(speed.getSelectedItem().toString().equals("Dual Speed"))
{
hoistSpeed.setAdapter(adapterTypeB);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
https://github.com/henrychuangtw/ReuseSpinner – HenryChuang