neue Screen

  • 10 Antworten
  • Letztes Antwortdatum
G

guguli

Neues Mitglied
0
Hallo zusammen,

1) ich möchte einen Button erstellen mit dem Namen "Edit" (kein problem)
2)beim Draufkicken muss eine neue Seite geöffnet werden. (Probem)
wie kann ich das machen :)
also ich hab 2 Buttons ich poste die mal:
Code:
case R.id.Button_start_on_random_map:

			FieldGenerator lg = new DefaultFieldGenerator();
			try {
				lg.init(8, 8, 4, 3, 64, null);
				String fieldString = lg.nextField();
				field = GsonProvider.getGson().fromJson(fieldString,
						Field.class);
			} catch (Exception e) {
				e.printStackTrace();
			}
			break;
		case R.id.Edit:
			//ToDo
			break;
		}
der erste ist ja klar startet einfach ne random map.
mit dem zweiten Batton "Edit" will ich selber nen neuen Map erstellen. ich will aber dass ein neuen Screen geöffnet wird.

wie kann ich das machen???
 
Das kannst du mit einem intent machen. Google einfach mal nach einem tutorial.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
ich hab das so versucht aber ich krieg die Fehlermeldung, dass "die anwendung unerwartet unterbrochen werden müsste".

Code:
case R.id.Edit:
			Intent edit=new Intent(getBaseContext(),Field.class);
			startActivity(edit);
			break;
 
probier mal:

Code:
 Intent edit = new Intent(Deineaktuelleactivity.this,aufzurufendeactivity.class);
startActivity(erdit);

So klappts bei mir.
 
Ich krieg immer noch die Fehlermeldung.
also die aktuelleaktivity ist ja die klasse wo ich gerad drin bin also mainActivity. und aufzurufendeactivity ist bei mir Field (Represents a playable level in the game).
:(
 
Ja wart mal ist dieses Field bei dir eine neue Activity (also nicht mehr Main und hat es ein eigenes Layout)? Denn mit dem Intent kann man nur neue Activitys aufrufen.
 
Also, das ist ein spiel. wenn man das spiel startet, dann hat 3 verscheidene Buttons. der Button "edit" ermöglicht den Spieler einen neuen Map zu erstellen.

Also ich würd sagen man braucht eine neue klasse, wir nennen es NewActivity.
und jetzt wie ruf ich das auf?????
 
guguli schrieb:
Also ich würd sagen man braucht eine neue klasse, wir nennen es NewActivity.

Willst du nun ein neues Klassenobjekt erstellen oder eine Activity aufrufen, d.h.: Erbt Field.java von (Map)Activity?
 
Hi,

hast du deine Activity im Manifest deklariert? Wenn nein mach das, andersfalls wäre besser wenn du die Fehlermeldung hier zeigen würdest.

MfG
 
also ich poste ma einfach was bis jetzt gemacht ist:
die Klasse MainActivity ist so :
Code:
public class MainActivity extends Activity implements OnClickListener {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// Bind to UI events
		((Button) findViewById(R.id.Button_start_on_default_map))
				.setOnClickListener(this);
		((Button) findViewById(R.id.Button_start_on_random_map))
				.setOnClickListener(this);
		Button edit = (Button) findViewById(R.id.edit);
		edit.setOnClickListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	public void onClick(View view) {
		Field field = null;
		switch (view.getId()) {
		case R.id.Button_start_on_default_map:
			InputStreamReader demoData = new InputStreamReader(this
					.getResources().openRawResource(R.raw.demo_field));
			field = GsonProvider.getGson().fromJson(demoData, Field.class);
			break;
		case R.id.Button_start_on_random_map:

			FieldGenerator lg = new DefaultFieldGenerator();
			try {
				lg.init(8, 8, 4, 3, 64, null);
				String fieldString = lg.nextField();
				field = GsonProvider.getGson().fromJson(fieldString,
						Field.class);
			} catch (Exception e) {
				e.printStackTrace();
			}
			break;
		case R.id.edit:
			Intent edit = new Intent(view.getContext(),NewActivity.class); //das funktioniert nicht, das ist mein Problem
			startActivity(edit);
			
			break;
		}

		// TODO(marmat): Think of a better way to store the player object
		GameLogic demoLogic = new DefaultGameLogic(this, field,
				ColorFieldsApp.getPlayer());
		demoLogic.addPositiveCondition(new SameColorCondition());
		ArActivity.startWithSetup(this, new GameSetup(this, field, demoLogic));
	}
}
ich muss noch vllt sagen dass hier json benutzt wird.
Ich hab mir dann überlegt um eine neue activity aufzurufen dann brauche ich eine ne Klasse activity. ist das so richtig?
ich will jetzt mit dem button Edit einen neuen Screen öffnen mit dem eigenen layout. mit Layout meine ich dass man da nochmehr button hat um sachen einzufügen.
Verständlich???
 
Code:
Intent edit = new Intent(view.getContext(),NewActivity.class);
eventuell in
Code:
Intent edit = new Intent(MainActivity.this, NewActivity.class);
ändern?

Und hast du die Activity im Manifest deklariert, wie von Kollen angemerkt?

Und generell wäre die Logcat-Ausgabe sehr hilfreich!
 

Ähnliche Themen

S
Antworten
7
Aufrufe
1.277
Silvasurf
S
Zurück
Oben Unten