# Zugriff auf die Position eines String- bzw Spinner-Arrays



## CercopithecusDiana (24. Dez 2018)

Hallo Leute,
ich bin gerade dabei mir eine kleine Android-App zu schreiben. Sie soll die Passungstoleranzen 

a) ausgeben als oberes und unteres Abmaß
   b) später dann das Spiel etc. angeben und später sollen dann noch Beispiele hinzu kommen.​Bisher hab ich grob den ersten Teil fertig und an einzelnen Array auch getestet, dass das prinzipell funktioniert.

Mein Plan ist jetzt, die Einträge für das 3Dim.-Toleranz-Array über Spinner laufen zu lassen. Da die Positionen des Spinner-Arrays (die "int positionen" des AdapterViews der 3 Arrays (Durchmesser, Toleranzbereiche Welle und Bohrung), genau die Positionen von den Durchmesser und Tol.-Bereichen der Array-Elementen der 3Dim-Toleranz-Arrays entspricht.


```
onItemSelectet-Methode:
    public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {
        if (position != 0) {
            String text = ((TextView)view).getText().toString();

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage(getString(R.string.selection)+"\n" + text + " (Pos. " + Integer.toString(position) + ")");
            AlertDialog dialog = builder.create();
            dialog.show();
        }
    }
```
Eines der String-Arrays:

```
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_nameA">Single Choice By Spinner</string>
    <string name="prompt">Your preferred d:</string>
    <string name="selection">Ausgewählt:</string>
    <string-array name="d_array">
        <item>ab Ø3 bis inc. Ø6</item>
        <item>von Ø6 bis inc. Ø10</item>

   ...
  
   </string-array>
</resources>
```

TolArray der onClick-Methode:

```
public void onClick(View v) {

// Toleranzarray für Bohrungen
        int TolArray[][][]={
                {{28, 20},{34, 25}, ...    }, //E6-ToleranzBez
                {{32, 20},{40, 25}, ...    }, //E7-ToleranzBez
       ...
   };
EditText etOA = findViewById(R.id.oa);
EditText etUA = findViewById(R.id.ua);

Spinner etDsp = findViewById(R.id.Dsp);
Spinner etTspB = findViewById(R.id.TspB);
Spinner etTspW = findViewById(R.id.TspW);

int d = 0;
int tolbereichBohrung = 0;
int tolbereichWelle = 0;

int oa1= 0;
int ua1=0;

oa1 = TolArray[tolbereichBohrung][d][0]; // Tolbereich/Durchmesser/oa/oa
ua1 = TolArray[tolbereichBohrung][d][1];
  
etOA.setText(oa1);
etUA.setText(ua1);
```
Daher möchte ich jetzt auf die Position des Spinner-Arrays zugreifen, um sie in int d/tolbereichBohrung/tolbereichWelle zu speichern und sie dann ins TolArray zu übertragen. Anschließend sollen die beiden Abmaße in etOA und etUA gespeichert werden, um sie auszugeben/weiterzuverarbeiten.

Ich hab gerade kein Plan wie ich das mit den Zugriff auf die Positionen der Spinner-Arrays gestalten könnte 

Ich sollte dazu sagen, dass ich mich mit xml nicht auskenne und Android-Studio seit 3 Tagen nutze. Daher musste ich mir die Infos auf die schnelle zusammengooglen (hab ja endlich mal Zeit dafür). Ich hab die Anwendung vorher in Java begonnen, bin da aber an den Zugriff auf die Variablen gescheitert, wenn ich die auf mehrere Klassen verteile nach den ModelControllerView-Konzept und nicht alles in eine Klasse klatsche.

Dann meine zweite Frage:
Ich hab die App-Einstellungen auf ein dunkles HoloTheme eingestellt in der activity_main ist die App auch als dunkel zu sehen, aber wenn ich die App aufs Handy übertrage ist immer noch der weiße Hintergrund und das hässliche Grün zu sehen:

--> einfügen Screenshot AndroidSt vs HandyApp

   


LG Diana


----------



## CercopithecusDiana (24. Dez 2018)

Juhu ich habs^^
Für das ArrayProblem war des Rätsels Lösung am Ende super simpel. Einfach nur: 
	
	
	
	





```
int d=etDsp.getSelectedPosition();
```

Also einfach nur den Spinner-Name und dann den Positions-Getter (nicht den ArrayName und ich hab stundenlang alle möglichen Kombies von Bezeichnungen & Autovervollständigung ausprobiert + debuggen warum da jetzt Sinnfrei-Werte übergeben werden ).


----------

