Android spinner.item index als integer ?

noobee

Aktives Mitglied
ist es möglich, dindex eines selected item eines spinners als zahl ausgegeben zu bekommen ? ich weiß, dass es
Java:
spinner.getSelectedItem()
gibt. doch ich kann das in einer if-abfrage iwie nicht verarbeiten.

ich hab n button, welcher irgend was tun soll, je nachdem welches item im spinner ausgewählt ist.
Java:
if(mySpinner1.getSelectedItem() == 0){

     //tue was
}
if(mySpinner1.getSelectedItem() == 1){

     //tue was anderes
}
...
...
...
 
Zuletzt bearbeitet:

noobee

Aktives Mitglied
danke. aber es geht nicht so recht. wenn ich das eintippe

Java:
int position = spinner01.getSelectedPostion();

bzw mit strg+leertaste vervollständigen lasse, wird es erst gar nicht angezeigt. mein spinner01 steht auch nicht in der "intellisense" liste mit drin...
 

noobee

Aktives Mitglied
so, getselecteditemposition funzt :) endlich mal n kleiner erfolg. aber das nächste prob lässt natürlich nicht lang auf sich warten:

ich kann zwischen zwei spinnern auswählen. je nach auswahl soll eben eine bestimmte berechnung stattfinden. gegeben ist eine zahl, die ja nach selecteditemposition der beiden spinner anders berechnet werden soll.

Java:
public class HalloAndroidActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button button2;
        button2 = (Button)findViewById(R.id.button2);
        button2.setOnClickListener(this);
    }
    ///////////////////////////////////////////////////////////
    ///
    /// Button Berechnung
    ///
    ///////////////////////////////////////////////////////////
	public void onClick(View v) {

		Spinner spin01 = (Spinner)findViewById(R.id.Spinner01);
		int spin01pos = spin01.getSelectedItemPosition();
		Spinner spin02 = (Spinner)findViewById(R.id.Spinner02);
		int spin02pos = spin01.getSelectedItemPosition();		

		EditText dob = (EditText)findViewById(R.id.editText1);
		String text = dob.getText().toString();
		int eingabe = Integer.parseInt(text);
		//dob.setText("abc", TextView.BufferType.EDITABLE);
					
		if((spin01pos == 0) & (spin02pos == 0))
			{
			EditText dob2 = (EditText)findViewById(R.id.editText2);
			dob2.setText(String.valueOf(eingabe * 1), TextView.BufferType.EDITABLE);
			}
		if((spin01pos == 0) & (spin02pos == 1))
			{
			EditText dob2 = (EditText)findViewById(R.id.editText2);
			dob2.setText(String.valueOf(eingabe * 2), TextView.BufferType.EDITABLE);
			}
		if((spin01pos == 0) & (spin02pos == 2))
		{
		EditText dob2 = (EditText)findViewById(R.id.editText2);
		dob2.setText(String.valueOf(eingabe * 3), TextView.BufferType.EDITABLE);
		}
	}
}

ich bekomme aber immer nur die berechnung von
Java:
if((spin01pos == 0) & (spin02pos == 0))
egal was ich bei dem 2. spinner einstelle.
 

schlingel

Gesperrter Benutzer
Das lässt sich sowieso besser lösen. Du möchtest, abhängig vom Item-Index aus dem zweiten Spinner rechnen, tu es auch ;-)

Code:
 // [...]
        if((spin01pos == 0))
            {
            EditText dob2 = (EditText)findViewById(R.id.editText2);
            dob2.setText(String.valueOf(eingabe * (spin02pos + 1)));
            }
// vergiss die anderen IFs

Außerdem rate ich dir, die ganzen Views im onCreate nach dem setContentView in Instanzvariablen zu speichern und die nicht jedes Mal wenn du sie brauchst erneut zu suchen. Dauert ja jedes Mal bis die richtige View gefunden wird.
 

noobee

Aktives Mitglied
Außerdem rate ich dir, die ganzen Views im onCreate nach dem setContentView in Instanzvariablen zu speichern und die nicht jedes Mal wenn du sie brauchst erneut zu suchen. Dauert ja jedes Mal bis die richtige View gefunden wird.
danke, werd ich ändern.

Das lässt sich sowieso besser lösen. Du möchtest, abhängig vom Item-Index aus dem zweiten Spinner rechnen, tu es auch
nein, das war nur ein beispielcode. das
Java:
dob2.setText(String.valueOf(eingabe * (spin02pos + 1)));
geht leider nicht. im "richtigen" programm soll
bei
Java:
spin02pos == 0
* 1000 gerechnet werden,

bei
Java:
spin02pos == 1
* 2.75 gerechnet werden ,

bei
Java:
spin02pos == 2
* 15 gerechnet werden usw...

aber selbst bei deiner eingabe
Java:
dob2.setText(String.valueOf(eingabe * (spin02pos + 1)));
wird nicht neu berechnet wenn ich die spinner.selectedItemPosition im laufenden betrieb neu auswähle ???:L
 
Zuletzt bearbeitet:

schlingel

Gesperrter Benutzer
musst du vielleicht noch
Java:
dob2.invalidate();
einbauen? Außerdem, hat das einen speziellen Grund warum du & und nicht && verwendest? && ist im Normalfall besser da hier im Falle dass der erste Ausdruck false bereits abgebrochen wird und bei & noch der zweite Ausdruck ausgewertet wird.
 

noobee

Aktives Mitglied
ok, hat alles supi geklappt. ich hab noch eine frage zu spinner.

ich konnte keine einstellung finden, items aus dem spinner auszugrauen bzw nicht anklickbar zu machen oder zu deaktivieren/aktivieren. hab ich die option übersehen oder ist es standardmäßig nicht möglich und nur mit viel code machbar??
 

schlingel

Gesperrter Benutzer
Tut mir leid, so intensiv hab ich mich damit nicht beschäftigt.

Läßt sich aber wahrscheinlich mit eher mehr als weniger Code regeln. Für was auch Optionen anzeigen die nicht verwendbar sind, entferne die einfach aus der Liste.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Spinner wird nicht aktualisiert Android & Cross-Platform Mobile Apps 6
O Android Spinner-Array ändern Android & Cross-Platform Mobile Apps 6
T Firestore Daten in Spinner Android & Cross-Platform Mobile Apps 0
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
S Android Style vom Spinner ändern (Dropdown sowie Fontfarbe) Android & Cross-Platform Mobile Apps 1
J android Spinner funktioniert nicht Android & Cross-Platform Mobile Apps 14
B Bitmap Array im Spinner übergeben? Android & Cross-Platform Mobile Apps 28
P Android Probleme mit Spinner Android & Cross-Platform Mobile Apps 3
G Android Spinner dynamisch aus DB SQL Select befüllen Android & Cross-Platform Mobile Apps 10
L Android Problem mit "spinner" Android & Cross-Platform Mobile Apps 10
F Android Spinner mit Ids Android & Cross-Platform Mobile Apps 4
F Android Fehler in Spinner Android & Cross-Platform Mobile Apps 3
F Android Spinner zur Laufzeit mit verschiedenem Inhalt füllen Android & Cross-Platform Mobile Apps 2
J Contextmenu-Item deaktivieren Android & Cross-Platform Mobile Apps 8
J ListView Item individuell einfärben Android & Cross-Platform Mobile Apps 17
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
J Android Studio - ArrayList - Selected Item ermitteln Android & Cross-Platform Mobile Apps 13
A ImageButton in ListView Item bei klick ändern Android & Cross-Platform Mobile Apps 3
B Android wie kann ich in einer xml nach bestimme item suchen (DOM) Android & Cross-Platform Mobile Apps 7
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11

Ähnliche Java Themen

Neue Themen


Oben