1. Koltanius, 21.05.2011 #1
    Koltanius

    Koltanius Threadstarter Neuer Benutzer

    Hallo

    Habe seit Kurzem angefangen, mich mit der Android Entwicklung zu beschäftigen und habe nun mein erstes eigenes Projekt begonnen zu schreiben.

    Nun habe ich das Problem, dass auf Knopfdruck eine neue Activity gestartet werden soll und dabei aber ein Force Close entsteht. Habe sowohl versucht, die die Klasse mit onclicklistener zu implementerieren als auch zuletzt mit android:onclick in der xml. Ich hoffe jemand hat kurz Zeit drüber zu schauen und kann mir helfen.

    Code:
    package de.kalorien.rechner;
    
    
    
    
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.RadioGroup;
    import android.widget.Spinner;
    import android.widget.Button; 
    import android.view.View.OnClickListener;
    
    
    public class FormularActivity extends Activity  {
        
    	
    	
    	  public static final String sKohlehydrate = "kohlehydrat";
    	 
    	
    	  public static final String sEiweiss = "eiweiss";
    	  
    	 
    	  public static final String sFett = "fett";
    
    	/** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
           
            
        }
        
       
    
    	public void onClick (View v) {
    		
    		EditText txtKohle = (EditText) findViewById(R.id.edit_Kohle);
    		EditText txtEiweiss = (EditText) findViewById(R.id.edit_Eiweiss);
    	 	EditText txtFett = (EditText) findViewById(R.id.edit_Fett); 
        	
    		final double Kohlehydrate = Double.parseDouble(txtKohle.getText().toString());
        	final double Eiweiss = Double.parseDouble(txtEiweiss.getText().toString());
        	final double Fett = Double.parseDouble(txtFett.getText().toString());
    		
        	 
        			final Intent intent = new Intent(this, ErgebnisActivity.class);
        	
        
        	        intent.putExtra(sKohlehydrate, Kohlehydrate);
        	        intent.putExtra(sEiweiss, Eiweiss);
        	        intent.putExtra(sFett, Fett);
        	        
        	     
        	       this.startActivity(intent);
        	        
    	}
        }
    Code:
    package de.kalorien.rechner;
    
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.RadioGroup;
    import android.widget.Spinner;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class ErgebnisActivity extends Activity{
    	
    	
    	public void onCreate(Bundle icicle){
    		super.onCreate(icicle);
    		setContentView(R.layout.ergebnis_anzeigen);
    		
    		
    		
    		final Bundle extras = getIntent().getExtras();
    		
    		if(extras != null){
    			final Ergebnis ergebnis = new Ergebnis();
    			
    			ergebnis.Kohlehydrate = extras.getDouble(FormularActivity.sKohlehydrate);
    			ergebnis.Eiweiss = extras.getDouble(FormularActivity.sEiweiss);
    			ergebnis.Fett = extras.getDouble(FormularActivity.sFett);
    			
    			zeigeErgebnis(ergebnis);
    		}
    	}
    		private void zeigeErgebnis(Ergebnis ergebnis){
    			setTitle("Ergebnis");
    			
    			ergebnis.berechneKalorien();
    			
    			final TextView txtKohlehydrate = (TextView) findViewById(R.id.tv_Kohlehydrate);
    			txtKohlehydrate.setText(String.valueOf(ergebnis.Ergebnis[0]));
    			
    			final TextView txtEiweiss = (TextView) findViewById(R.id.tv_Eiweiss);
    			txtEiweiss.setText(String.valueOf(ergebnis.Ergebnis[1]));
    			
    			final TextView txtFett = (TextView) findViewById(R.id.tv_Fett);
    			txtFett.setText(String.valueOf(ergebnis.Ergebnis[2]));
    			
    			final TextView txtErgebnis = (TextView) findViewById(R.id.tv_Ergebnis);
    			txtErgebnis.setText(String.valueOf(ergebnis.Ergebnis[3]));
    		}
    
    }
    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"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Bitte geben Sie die Menge an Kohlehydraten, Eiweiss und Fetten ein"
        />
    <EditText android:text="" android:inputType="numberDecimal" android:layout_width="fill_parent" android:id="@+id/edit_Kohle" android:layout_height="70dip"></EditText>
    <EditText android:text="" android:layout_width="fill_parent" android:id="@+id/edit_Eiweiss" android:inputType="numberDecimal" android:layout_height="70dip"></EditText>
    <EditText android:text="" android:layout_width="fill_parent" android:id="@+id/edit_Fett" android:inputType="numberDecimal" android:layout_height="70dip"></EditText>
    <Button android:layout_width="fill_parent" android:text="@string/buttontext" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/button" android:onClick="onClick"> ></Button>
    </LinearLayout>
    
    Wenn weitere Quelldateien benötigt werden, kann ich diese noch einbinden.

    Vielen Dank schonmal.

    Gruß
     
  2. swordi, 21.05.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    1) es gibt gefühlte 100 threads die genau das behandeln.

    2) android.developer.com hilft dir immer weiter

    3) hier gibt es keine hellseher, aber ich vermute mal du hast die ErgebnisActivity nicht im Manifest eingetrage
     
  3. Koltanius, 21.05.2011 #3
    Koltanius

    Koltanius Threadstarter Neuer Benutzer

    Naja es ist ja nicht so, dass ich zu faul bin, mir threads und tutorials anzugucken. Das habe ich bereits seit gefühlten Stunden getan und bin mir durchaus bewusst, welche Möglichkeiten es gibt, mein Vorhaben zu realisieren. Hab es sowohl mit dem onclicklistener als auch implements onclicklistener und nun mit dem direkten Zuweisen von onclick in der xml versucht. Doch wie geagt bekomme ich es einfach nicht hin und daher wende ich mich ans Forum an erfahrene Leute, die vielleicht einen Fehler sehen und mir eventuell helfen können/möchten.

    Die Activity ist übrigends in der Manifest eingetragen:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="de.kalorien.rechner"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="7" />
    
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".FormularActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    		<activity android:name=".ErgebnisActivity" /> 
        </application>
    </manifest>
     
  4. DieGoldeneMitte, 21.05.2011 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Im LogCat findest Du eine Fehlermeldung, die dir sagt, an welcher Stelle im Code die Exception geworfen wird, die zu dem FC führt.

    Aber offen gesagt ist Dein Code insgesamt sehr .... merkwürdig. Für ein einfaches Formular, das auf Knopfdruck eine einfache Rechnung ausführt, brauchst du Activities (außer natürlich die für das "Hauptprogramm") eigentlich nicht. Setze in dem Button einen onClickListener, in *dessen* onClick() die Berechnung durchgeführt wird. Das findet alles in deiner Formularactivity statt.
     
    Zuletzt bearbeitet: 21.05.2011
  5. Koltanius, 21.05.2011 #5
    Koltanius

    Koltanius Threadstarter Neuer Benutzer

    Ok hab es hinbekommen. Habe in den button nun einen OnCklickListener gesetzt und die Berechnung wie angemerkt, in die FormularActivity gelegt.

    Danke für die Hilfe.

    Gruß
     
Die Seite wird geladen...
Ähnliche Themen - Activity über Button Forum Datum
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
ProgressDialog und SnackBar in MainActivity Android App Entwicklung 16.02.2017
Intent mit Daten (putExtra) zu anderer Activity Android App Entwicklung 14.02.2017
Bestätigungsdialog in der Activity Android App Entwicklung 19.12.2016
Online-Kalender in einem Fragment/einer Activity Android App Entwicklung 17.11.2016
Fehler in der Activity Android App Entwicklung 15.11.2016
Kann man in einer Activity verhindern, daß zurücknavigiert wird? Android App Entwicklung 14.11.2016
App wird nicht gestartet, "Error while Launching activity" Android App Entwicklung 21.10.2016