2016-09-22 17 views
-3

Ich möchte den Wert in Spinner und Benutzer nehmen Sie die OK-Taste und starten Sie neue Aktivität gegen den Wert von Spinner. Das String-Array ist einfach so.Spinner Verwendung IF sonst

public class Menu extends Activity implements View.OnClickListener { 
    private String[] array_spinner = {"Select Here", "Honda", "Toyota", "Mitibushi"}; 
    private String[] array_spinner01 = {"Select Here", "Civic", "Gli", "Lancer"}; 
    // //private String[] array_spinner02={"1999","2000","2005"}; 
// Spinner s,s1,s2; 
// Button ok; 
//@Override 
// protected void onCreate(Bundle savedInstanceState) { 
//  super.onCreate(savedInstanceState); 
    Spinner s, s1; 
    Button ok; 
    Object _globalString; 
    Object _globalString2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_menu); 

     s = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner); 
     s.setAdapter(adapter); 

     s1 = (Spinner) findViewById(R.id.spinner01); 
     ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner01); 
     s1.setAdapter(adapter1); 
// 
// s2=(Spinner)findViewById(R.id.spinner02); 
// ArrayAdapter<String> adapter2=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,array_spinner02); 
// s2.setAdapter(adapter2); 

     ok = (Button) findViewById(R.id.btn_ok); 
     ok.setOnClickListener(this); 

     s.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       _globalString = parent.getItemAtPosition(position); 
      } 

      //@Override 
      public void onNothingSelected(AdapterView<?> parent) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     s1.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       _globalString2 = parent.getItemAtPosition(position); 
      } 

      // @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
       // TODO Auto-generated method stub 

      } 
     }); 

    } 

    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.btn_ok) { 
      if (_globalString.equals("Honda") || _globalString2.equals("Civic")) { 
       startActivity(new Intent(getApplicationContext(), Civic.class)); 
      } else if (_globalString.equals("Toyota") || _globalString2.equals("Gli")) { 
       startActivity(new Intent(getApplicationContext(), Toyota.class)); 
      } 

     } 
    } 
} 

Bitte sagen Sie mir, wo mein Fehler in diesem Code ist, weil ich stucked und ich kann nicht finden es

+0

warum Sie Setzen Sie _globalString als Objekt und nicht als String –

+0

, denn speichern Sie die Spinner-Daten in einem Objekt. so ist es das falsche –

+0

ja es ist falsch! –

Antwort

0

Es gibt viele Möglichkeiten, dies zu tun, aber ich würde diese Lösung zu folgen empfehlen:

Erstens:

den Wert des Spinners in einer globalen String-variablen speichern, indem Sie einen String an der Spitze Ihrer Aktivität erklärt wie unten:

public class Menu extends Activity implements View.OnClickListener { 

Spinner s1, s2; 
Button acceptbutton; 
String _globalString ; 
String _globalString2 ; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 
//Your code .. 

Nun müssen Sie den Wert Ihrer ausgewählten Feldes in dieser Zeichenfolge speichern, jedes Mal wenn Wert Ihrer Spinner Änderungen:

s1.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     _globalString = parent.getItemAtPosition(position); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 
     // TODO Auto-generated method stub 

    } 
}); 

s.setOnItemSelectedListener(new OnItemSelectedListener() { 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, 
     int position, long id) { 
    _globalString2 = parent.getItemAtPosition(position); 
} 

@Override 
public void onNothingSelected(AdapterView<?> parent) { 
    // TODO Auto-generated method stub 

} 
}); 

Jetzt können Sie Aktivität basierend auf spinner Wert umschalten:

@Override 
public void onClick(View v) { 
    if (v.getId() == R.id.btn_ok) { 
     if (_globalString.equals("Honda") || _globalString2.equals("Civic")) { 
      startActivity(new Intent(getApplicationContext(), Civic.class)); 
     } else if (_globalString.equals("Toyota") || _globalString2.equals("Gli")) { 
      startActivity(new Intent(getApplicationContext(), Toyota.class)); 
     } 

    } 
} 
+0

_globalString = parent.getItemAtPosition (pos); whats die Verwendung von pos in diesem Code –

+0

@harismahmood pos ist die Position aus der Override-Methode onItemSelected übernommen. Sie können es durch Position als Erwähnung ersetzen. Ich werde meine Antwort bearbeiten –

+0

ok Danke, ich werde entweder überprüfen, ob es funktioniert oder nicht –