Android - metoda onCreate

0

Witam, jestem początkującym programistą. Zaciekawił mnie pomysł pisania aplikacji na platformę Android, i od kilku dni próbuje z nim walczyć.
Przeszukałem już różne strony, i nigdzie nie mogłem znaleźć odpowiedzi. A mianowicie...

 @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main_activity2);

		
		//if (savedInstanceState == null) {
			
			getSupportFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}//

	
	}

Podstawowy kod jaki zostaje wygenerowany podczas tworzenia nowej aplikacji w metodzie onCreate zawiera "if (savedInstanceState == null)..."
Żaden kurs programowania tego nie posiada, nigdzie nie ma tego wytłumaczonego. Ponadto w żaden sposób nie mogę dodać nowej klasy do onCreate. Próbowałem na wszelkie sposoby obejść to, lecz bez skutków. Proszę was o pomoc

koziolek: dodane znaczniki

0

Pod savedInstanceState zazwyczaj zapisuje się status Activity przed zniszczeniem aby przy odtworzeniu można było dane łatwo odzyskać (przykładowo to co użytkownik już wklepał w jakimś formularzu). Na samym początku możesz to usunąć za pewne dojdziesz do tego tematu wkrótce.

Więcej na temat: http://developer.android.com/training/basics/activity-lifecycle/recreating.html

Natomiast nie rozumiem o co chodzi z "dodawaniem nowej klasy do OnCreate".

1

savedInstanceState jest obiektem, w którym możesz zapisać dane potrzebne po ponownym utworzeniu aktywności np. po zmianie orientacji ekranu. Dokonuje się tego w metodzie onSaveInstanceState(). Przy pierwszym wywolaniu metody onCreate obiekt ten jest zawsze nullem.

throwyn napisał(a):

[...] Ponadto w żaden sposób nie mogę dodać nowej klasy do onCreate. [...]

Nie kumam :)

0

Dziękuje wam za wytłumaczenie :)
Jak już pisałem, jestem zielony w te klocki, przez co myle jeszcze pojęcia.
Chodziło mi chociażby o wprowadzanie wartości dynamicznie, przypinając do onCreate:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView displaymessage = (TextView) findViewById(R.id.textView1);
		displaymessage.setText(getIntent().getExtras().getString("textmessage"));
	}

Ale po uruchomieniu strona aktywności jest czysta, nic na niej nie pokazuje. Nie mogę w żaden sposób zmodyfikować onCreate i wydaje mi się że przyczyną jest savedInstanceState

0

Aby przekazać parametr do aktywności powinieneś zrobić to mniej więcej tak:

 Intent intent = new Intent(context, TwojaAktywnosc.class);
	   intent.putExtra("textmessage", "message");
	   startActivity(intent);

1 użytkowników online, w tym zalogowanych: 0, gości: 1