1. donhenne, 07.01.2011 #1
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Hallo!

    Bin noch recht neu im Android-Gebiet und versuche gerade Werte an eine andere Activity weiterzureichen. Mein Problem ist, dass ich alle Werte gebündelt an die nächste Activity weitergeben und anzeigen lassen möchte, ich es aber nicht hinkriege. Habe schon alles mögliche mit putExtra(), getExtra() etc ausproiert. Code da schon ewig dran rum.
    Vielleicht kann ja wer helfen :)

    Hier mal der Code:

    start.java:
    Code:
    public class start extends Activity {
    	/** Called when the activity is first created. */
    	// Variablen fuer die einzelnen Menueeintraege
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		// Autocomplete fuer Strassen
    		AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_strassen);
    		String[] strasse = getResources()
    				.getStringArray(R.array.strassen_array);
    		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    				R.layout.list_item, strasse);
    		textView.setAdapter(adapter);
    
    		// Spinner fuer Monateauswahl
    		final Spinner spinner1 = (Spinner) findViewById(R.id.Spinner01);
    		ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
    				this, R.array.monate_array,
    				android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner1.setAdapter(adapter1);
    
    		// Spinner fuer Jahreauswahl
    		Spinner spinner2 = (Spinner) findViewById(R.id.Spinner02);
    		ArrayAdapter<CharSequence> adapter2 = ArrayAdapter
    				.createFromResource(this, R.array.jahre_array,
    						android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner2.setAdapter(adapter2);
    
    		// Spinner fuer Muellauswahl
    		Spinner spinner4 = (Spinner) findViewById(R.id.Spinner04);
    		ArrayAdapter<CharSequence> adapter4 = ArrayAdapter
    				.createFromResource(this, R.array.muell_array,
    						android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner4.setAdapter(adapter4);
    	}
    
    	// Ergebnis anzeigen
    	public void ergebnisAufruf(View v) {
    		Intent intent = new Intent(this, ergebnis.class);
    		startActivity(intent);
    	}
    
    	// zurück zum Anfangsbildschirm
    	public void backToMain(View v) {
    		Intent intent = new Intent(this, start.class);
    		startActivity(intent);
    	}
    
    }
    
    ergebnis.java
    Code:
    public class ergebnis extends Activity {
        /** Called when the activity is first created. */
    	 
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.ergebnis_anzeigen);        
        }
        
        public void backToMain(View v) {
        	Intent intent = new Intent(this, start.class);
        	startActivity(intent);
        }
    }
    
    main.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent" android:background="@color/hintergrund">
    	
    		<TextView android:layout_width="fill_parent"
    		android:layout_height="wrap_content" android:textColor="@color/schrift"
    		android:text="Wählen Sie Ihre Straße und die gewünschte Abfallart aus." />
    		
    		<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Strasse" />
            
    		<AutoCompleteTextView android:id="@+id/autocomplete_strassen"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"/>
    		
    		<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Monat" />
            
            <Spinner android:id="@+id/Spinner01" android:layout_width="wrap_content"
    		android:layout_height="wrap_content" android:entries="@array/monate_array" android:drawSelectorOnTop="true"></Spinner>
            
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Jahr" />
            
            <Spinner android:id="@+id/Spinner02" android:layout_width="wrap_content"
    		android:layout_height="wrap_content" android:entries="@array/jahre_array" android:drawSelectorOnTop="true"></Spinner>
            
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Müllart" />
            
            <Spinner android:id="@+id/Spinner04" android:layout_width="wrap_content"
    		android:layout_height="wrap_content" android:entries="@array/muell_array" android:drawSelectorOnTop="true"></Spinner>
            
            <Button android:text="Anzeigen" android:id="@+id/Button01"
    		android:layout_width="wrap_content" android:layout_height="wrap_content" 
    		android:layout_gravity="center_horizontal" android:onClick="ergebnisAufruf"></Button>
    		
    		<ImageView android:id="@+id/ImageView01"
    		android:layout_width="wrap_content" android:layout_height="wrap_content"
    		android:src="@drawable/logo" android:layout_gravity="center_horizontal"></ImageView>
    		
    </LinearLayout>
    
    ergebnis_anzeigen.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent" android:background="@color/hintergrund">
    	
    	<View android:layout_height="2dip" android:background="#FFC43B" />
    	
    	<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
    		android:layout_height="wrap_content">
    		
    		<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
    			android:layout_height="wrap_content" android:text="Art"
    			android:padding="3dip"></TextView>
    			
    		<TextView android:text="Datum" android:id="@+id/TextView02"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    		<TextView android:text="Text" android:id="@+id/TextView03"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    	</TableRow>
    	
    	<View android:layout_height="2dip" android:background="#FFC43B" />
    	
    	<Button android:text="zurück" android:id="@+id/Button02"
    		android:layout_width="wrap_content" android:layout_height="wrap_content" 
    		android:layout_gravity="center_horizontal" android:onClick="backToMain"></Button>
    
    	<ImageView android:id="@+id/ImageView01"
    		android:layout_width="wrap_content" android:layout_height="wrap_content"
    		android:src="@drawable/logo" android:layout_gravity="center_horizontal"></ImageView>
    		
    </TableLayout>
    
     
  2. the_alien, 07.01.2011 #2
    the_alien

    the_alien Android-Lexikon

    Code:
    Intent intent = new Intent(this, blah.class);
    intent.putExtra("MeinTolleTextBoxAuswahl", textbox.get...);
    intent.putExtra("MeineTolleSpinnerAuswahl", spinner.get...);
    startActivity(intent);
    Code:
    public void onCreate(...) {
    intent.getStringExtra("MeinTolleTextBoxAuswahl");
    intent.getStringExtra("MeineTolleSpinnerAuswahl");
    }
     
    donhenne gefällt das.
  3. donhenne, 07.01.2011 #3
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Super. Danke für die schnelle Antwort.
    Werd es gleich mal ausprobieren :)
     
  4. donhenne, 10.01.2011 #4
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Hi. Ich wieder :)
    So, hab das mal ausprobiert wie du es geschrieben hast, aber irgendwie funzt das bei mir nicht. Keine Ahnung was ich da falsch mache.
    Wenn ich in der start.java die Activity starte, dauert es ewig bis wann angezeigt wird und und die Spinner reagieren auf gar nichts mehr. LogCat meldet, dass .start nonstop gestartet wird.

    Ich will, dass die ausgewählten Werte in der start.java durch die ergebnis.java (Layout:ergebnis_anzeigen.xml) dargestellt werden.
    Was muss ich nun genau machen, um mir die Auswahl anzeigen zu lassen.
    Sorry nochmal, aber mir fehlt sozusagen noch das richtige Verständnis für Android-Programmierung, aber wie gesagt ist alles noch Neuland für mich :p

    Danke schonmal im Vorraus!

    Hier nochmal meine geänderten Dateien:
    start.java
    Code:
    public class start extends Activity {
    	/** Called when the activity is first created. */
    	// Variablen fuer die einzelnen Menueeintraege
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		// Autocomplete fuer Strassen
    		AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_strassen);
    		String[] strasse = getResources()
    				.getStringArray(R.array.strassen_array);
    		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    				R.layout.list_item, strasse);
    		textView.setAdapter(adapter);
    
    		// Spinner fuer Monateauswahl
    		final Spinner spinner1 = (Spinner) findViewById(R.id.Spinner01);
    		ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
    				this, R.array.monate_array,
    				android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner1.setAdapter(adapter1);
    
    		// Spinner fuer Jahreauswahl
    		Spinner spinner2 = (Spinner) findViewById(R.id.Spinner02);
    		ArrayAdapter<CharSequence> adapter2 = ArrayAdapter
    				.createFromResource(this, R.array.jahre_array,
    						android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner2.setAdapter(adapter2);
    
    		// Spinner fuer Muellauswahl
    		Spinner spinner4 = (Spinner) findViewById(R.id.Spinner04);
    		ArrayAdapter<CharSequence> adapter4 = ArrayAdapter
    				.createFromResource(this, R.array.muell_array,
    						android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		spinner4.setAdapter(adapter4);
    		
    		Intent intent = new Intent(this, start.class);
    		intent.putExtra("autocomplete_strassen", textView.getText().toString());
    		intent.putExtra("Spinner01", spinner1.getSelectedItem().toString());
    		intent.putExtra("Spinner02", spinner2.getSelectedItem().toString());
    		intent.putExtra("Spinner04", spinner4.getSelectedItem().toString());
    		startActivity(intent);
    	}
    
    	// Ergebnis anzeigen
    	public void ergebnisAufruf(View v) {
    		Intent intent = new Intent(this, ergebnis.class);
    		startActivity(intent);
    	}
    
    	// zurück zum Anfangsbildschirm
    	public void backToMain(View v) {
    		Intent intent = new Intent(this, start.class);
    		startActivity(intent);
    	}
    
    }
    
    ergebnis.java:
    Code:
    public class ergebnis extends Activity {
        /** Called when the activity is first created. */
    	 
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.ergebnis_anzeigen);
    
    //[B]Hier zeigt Eclipse Fehler bei "intent" -> cannot be resolved[/B]
            intent.getStringExtra("autocomplete_strassen");
            intent.getStringExtra("Spinner01");
            intent.getStringExtra("Spinner02");
            intent.getStringExtra("Spinner04");
        }
        
        public void backToMain(View v) {
        	Intent intent = new Intent(this, start.class);
        	startActivity(intent);
        }
    }
    
    ergebnis_anzeigen.xml:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent" android:background="@color/hintergrund">
    	
    	<View android:layout_height="2dip" android:background="#FFC43B" />
    	
    	<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
    		android:layout_height="wrap_content">
    		
    		<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
    			android:layout_height="wrap_content" android:text="Art"
    			android:padding="3dip"></TextView>
    			
    		<TextView android:text="Datum" android:id="@+id/TextView02"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    		<TextView android:text="Müllart" android:id="@+id/TextView03"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    	</TableRow>
    	
    	<View android:layout_height="2dip" android:background="#FFC43B" />
    	
    	<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"
    		android:layout_height="wrap_content">
    		
    		<TextView android:id="@+id/TextView04" android:layout_width="wrap_content"
    			android:layout_height="wrap_content" android:padding="3dip"></TextView>
    			
    		<TextView android:id="@+id/TextView05"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    		<TextView android:id="@+id/TextView06"
    			android:layout_width="wrap_content" android:layout_height="wrap_content"
    			android:padding="3dip"></TextView>
    			
    	</TableRow>
    	
    	<View android:layout_height="2dip" android:background="#FFC43B" />
    	
    	<Button android:text="zurück" android:id="@+id/Button02"
    		android:layout_width="wrap_content" android:layout_height="wrap_content" 
    		android:layout_gravity="center_horizontal" android:onClick="backToMain"></Button>
    
    	<ImageView android:id="@+id/ImageView01"
    		android:layout_width="wrap_content" android:layout_height="wrap_content"
    		android:src="@drawable/logo" android:layout_gravity="center_horizontal"></ImageView>
    		
    </TableLayout>
    
     
  5. the_alien, 10.01.2011 #5
    the_alien

    the_alien Android-Lexikon

    Das Intent kriegst du über getIntent().

    Und du hast die quasi eine Endlosschleife gebaut in der onCreate deiner start Klasse:
    Code:
    Intent intent = new Intent(this, start.class);
    		intent.putExtra("autocomplete_strassen", textView.getText().toString());
    		intent.putExtra("Spinner01", spinner1.getSelectedItem().toString());
    		intent.putExtra("Spinner02", spinner2.getSelectedItem().toString());
    		intent.putExtra("Spinner04", spinner4.getSelectedItem().toString());
    		startActivity(intent);
    Die Activity startet und ruft sich selber immer wieder neu auf. Das kann so nicht funktionieren.
     
  6. donhenne, 10.01.2011 #6
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Oh stimmt! Hab den Wald vor lauter Bäumen nicht mehr gesehen. Fehler behoben :)
    Habe jetzt die ergebnis.java angepasst und es geht auch, etwas in die Tabelle zu schreiben. Aber irgendwie mache ich das wohl mit dem getIntent() falsch.

    ergebnis.java:
    Code:
    public class ergebnis extends Activity {
        /** Called when the activity is first created. */
    	 
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
           
            final Intent intent = getIntent();
            
            intent.getStringExtra("autocomplete_strassen");
            intent.getStringExtra("Spinner01");
            intent.getStringExtra("Spinner02");
            intent.getStringExtra("Spinner04");
            setContentView(R.layout.ergebnis_anzeigen); 
            
            [B]//art_view = ID der TextView n der Ausgabe stattfinden soll[/B]
            TextView tx = (TextView) findViewById(R.id.art_view);
            tx.setText(getIntent().toString());         
        }
        
            public void backToMain(View v) {
        	Intent intent = new Intent(this, start.class);
        	startActivity(intent);
        }
    }
    
    Wollte nun nur den vom ersten Spinner gewählten Eintrag mir anzeigen lassen. Was ist denn falsch an meinem Aufruf? Weil es wird der komplette Intent ausgegeben und ich will ja nur den gewählten Eintrag. Geht das vielleicht über getSelectedItem() oder so?

    Danke schonmal im Vorraus

    PS: Ich probiers ja wirklich selber hinzukriegen, aber ich steh gerade wiedermal aufm Schlauch
     
  7. the_alien, 10.01.2011 #7
    the_alien

    the_alien Android-Lexikon

    Du musst die Sachen aus dem getStringExtra nach deinen Wünschen zusammenfassen und anzeigen...
     
  8. donhenne, 18.01.2011 #8
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Hi! Ich wieder...
    Habe nun die ganze Zeit rumprobiert und bekomme es einfach nicht hin :(

    Kann wir vielleicht ein Code-Beispiel zeigen, wie ich jetzt beispielsweise den String des angeklickten Feldes in der AutocompleteBox in der Tabell der ergebnis_anzeigen.xml reinhau.

    Glaube eh, dass da irgendwas in meinem Code net richtig ist.
     
  9. the_alien, 19.01.2011 #9
    the_alien

    the_alien Android-Lexikon

    Code:
    public class ergebnis extends Activity {
        /** Called when the activity is first created. */
    	 
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
           
            final Intent intent = getIntent();
            
            String strassen = intent.getStringExtra("autocomplete_strassen");
            String spinner1 = intent.getStringExtra("Spinner01");
            String spinner2 = intent.getStringExtra("Spinner02");
            String spinner4 = intent.getStringExtra("Spinner04");
            setContentView(R.layout.ergebnis_anzeigen); 
            
            [B]//art_view = ID der TextView n der Ausgabe stattfinden soll[/B]
            TextView tx = (TextView) findViewById(R.id.art_view);
            tx.setText(strassen);         
            //[b]andere variablen (spinner1...) irgendwo anzeigen lassen[/b]
        }
        
            public void backToMain(View v) {
        	Intent intent = new Intent(this, start.class);
        	startActivity(intent);
        }
    }
    
     
    donhenne gefällt das.
  10. donhenne, 20.01.2011 #10
    donhenne

    donhenne Threadstarter Neuer Benutzer

    Ahh, jetzt hab ichs endlich abgerafft! Geht jetzt alles wie ich es haben wollte.
    Danke für deine Geduld und Hilfe :)

    Nächsten Fragen kommen bestimmt bald :p
     
Die Seite wird geladen...
Similar Threads Forum Datum
[ERLEDIGT] Spinner feste double Werte zuordnen Android App Entwicklung 24.04.2017
UMiDIGI Z Pro Umi Z Pro Sar Wert? UMi/UMiDIGI Z Forum 29.04.2017
Sar Wert Erklärung Kaufberatungen für Android-Smartphones 09.05.2017
Was taugt das Anti-Stress Fidget Spinner? GearBest Forum 16.05.2017
Einsteiger-Smartphone gesucht, niedriger SAR Wert ~200 Euro Kaufberatungen für Android-Smartphones 17.05.2017
Aquaris X Frage zum SAR Wert bzw. Normierte Strahlungfaktor bq Aquaris X / X Pro Forum 18.05.2017
SAR Wert Moto g5 Kaufberatungen für Android-Smartphones 22.05.2017
Huawei P10 Dateimanager/bilder spinnen Huawei P10 Forum 22.05.2017
Warum gibt es noch nirgends den SAR Wert zum U11? HTC U11 Forum Donnerstag um 20:39 Uhr
Sar-Wert Vergleich P8 - P10 Huawei P10 Lite Forum Freitag um 09:56 Uhr