2016-05-09 6 views
-1

Ich habe eine Haupttätigkeit, die eine Schaufensterpuppe enthält (Bär mit mir) und wenn Sie auf seinen Kopf klicken, öffnet es eine neue Tätigkeit, in der Sie die Frisur und die Farbe wählen können Kopf des Schaufensterpuppen. Ich würde gerne in der Lage sein, diese Auswahl in die Haupttätigkeit zu kopieren und das gleiche Bild auf der Puppe zu präsentieren. Wie kann ich das machen?Variablen von Spinnern zu Hauptaktivität kopieren

+0

Möglich Duplikat von [Wie gebe ich Daten zwischen Aktivitäten auf Android?] (http://stackoverflow.com/questions/2091465/how-doi-i-pass-data-between-activities-on-android) –

+0

würde ich vorschlagen Bewahren Sie die Spinnerliste global für Ihre App auf und holen Sie die ausgewählte Position aus dem Spinner und laden Sie das entsprechende Objekt aus der globalen Liste, da die Positionen gleich sind –

Antwort

0

Ich erreichte dies durch Verwendung von intent.putExtra. Wie Heres:

habe ich eine Schaltfläche, um die mainActivity zurückzukehren:

<Button 
    android:id="@+id/backtomain" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/back_arrow" 
    android:onClick="backMain" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" /> 

Die onClick:"backMain" läuft backMain in der Java-Datei:

public void backMain(View view){ 
    Intent intent = new Intent (this, MainActivity.class); 
    intent.putExtra("hairStyle", hairSpinner.getSelectedItem().toString()); 
    intent.putExtra("hairColor", hairColor.getSelectedItem().toString()); 
    startActivity(intent); 
} 

Die ausgewählten Elemente auf den Spinnern aus der gesendeten Aktivität und gespeichert als Variablen in der Haupttätigkeit:

String hairStyle, hairColor; 
Bundle hairExtras = getIntent().getExtras(); 
if(hairExtras!=null){ 
    hairStyle = hairExtras.getString("hairStyle"); 
    hairColor = hairExtras.getString("hairColor"); 
    displayHair(); 
} 
0

Etwas wie dieses: Von Ihrer Frisur activity.

Intent _intent = new Intent(this, newscreen.class); 
Bitmap _bitmap; // your bitmap 
ByteArrayOutputStream _bs = new ByteArrayOutputStream(); 
_bitmap.compress(Bitmap.CompressFormat.PNG, 50, _bs); 
i.putExtra("byteArray", _bs.toByteArray()); 
startActivity(i); 

Von Ihrer Mannequin-Aktivität.

if(getIntent().hasExtra("byteArray")) { 
    ImageView _imv= new ImageView(this); 
    Bitmap _bitmap = BitmapFactory.decodeByteArray(
      getIntent().getByteArrayExtra("byteArray"),0,getIntent(). 
    getByteArrayExtra("byteArray").length);   
    _imv.setImageBitmap(_bitmap); 
} 

nahm ich diese Antwort aus einer ähnlichen Frage hier: how to pass images through intent?

0

Sie statische Variablen in Ihrem MainActivity

wie

public static String hairStyle = ""; 

dann von Ihrem Spinner lassen, nachdem Sie füllen es mit Daten

Spinner hairStylesSpinner = (Spinner) findViewById(R.id.hair_styles_spinner); 

SpinnerAdapter spinnerAdapter = new SpinnerAdapter(new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.hair_styles))), ""); 

hairStylesSpinner.setAdapter(spinnerAdapter); 

erhalten die ausgewählten und es in Ihrem MainActivity

MainActivity.hairStyle = yourList.get(hairStylesSpinner.getSelectedItemPosition()) speichern;

Verwandte Themen