verschiedneses layout (Portrait - Landscape)

  • Antworten:23
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 07:43:53 via Website

Hallo leute,

ich will mir einen taschenrechner programmieren fürs android
es sind java kentnisse vorhanden und so nur ich hab folgendes problem

Ich möchte zwei verschiedene layouts haben,
  1. Portrait
  2. Landscape

und sobald ich vom protrait modus in den landscape wechsle soll
er mein anderes layout verwenden

Beide layouts sind fertig, liegen im "res" Folder.

Jetz muss ich ihm nur noch beibringen wann er welches layout verwenden soll

NUR WIE

Bitte hilfe

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

09.02.2010, 09:08:48 via Website

hallo jan

ist alles ganz einfach

leg dein portrait layout (nennen wir es main.xml )
in den ordner

res/layout

dann hast du noch ein landscape layout ( das auch main.xml heißen muss )

in den ordner res/layout-land

und schon wird automatisch das richtige layout geladen

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 09:42:04 via Website

gleich mal testen.

vielen dank schon mal

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 09:49:06 via Website

Super klasse....
Das funktioniert

Man freu ich mich drauf wenn der taschenrechner
fertig ist ^^

endlich ein guter taschenrechner der tut was ich will
und noch dazu gut aus sieht :-D

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

09.02.2010, 09:59:09 via Website

na dann stell nachher mal ein paar screenshots rein.

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 12:22:14 via Website

wenn mir das layout farblich auch gefällt mach ich das ;-)

kann nur nicht viel dran rumprogrammieren da ich auch noch arbeit hab ;-P

des wird ein eher langwieriges projeckt schätz ich ^^

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 13:19:29 via Website

Hab nochmal eine frage....
Meine Kollegen wissen nich wirklich weiter und ich auch nicht.
Mein taschen-rechner hat im wissenschaftlichen format ca. 42 Button

Jetz kann ich das nicht bringen 42 clickListener zu basteln

wie mach ich das, das ich 1 oder 2 listener hab?

Danke schon mal

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

09.02.2010, 13:33:16 via Website

naja

eine einfache lösung wäre

1bt1.setonclicklistener(this)
2bt2.setonclicklistener(this)
3usw...

1private void onclick(View v) {
2
3Button bt = (Button)v;
4switch(bt.getID) {
5
6case R.id.bt1: doSomething();
7case R.id.bt2: doAnotherThing();
8usw..
9}
10}

kannst natürlich auch auslagern in eine eigene klasse und von onlicklistener erben

aber die onlick bleibt ja gleich, da jeder button eine eindeutige id hat

— geändert am 09.02.2010, 13:33:49

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 13:59:47 via Website

hm.......

habs probiert zum 1.
ich muss das so machen

button01.setOnClickListener((OnClickListener) this);
usw.

weil er so

button01.setOnClickListener(this);
folgenden bringt
The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments

und bei dem hier

public void onClick(View v) {
Button button = (Button)v;
switch(button.getId()) {
case R.id.Button01: changeValue();
case R.id.Button02: function();
}
}

sagt er folgendes:
void is an invalid type for the variable onClick

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 14:17:49 via Website

verdammt bin ich ein dödel :-D

habs schon

hab nur vergessen die OnClickListener zu implementieren ^^


Es sind immer die einfachsten sachen die falsch sind :-P

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

09.02.2010, 15:12:14 via Website

Sodalla.....

neues Problem:

Mein Code -> Fehlerfrei
zumindest mein Eclipse das er passt ;)

Dann starte ich den emulator und bevor
ich iwas von meinem taschenrechner sehe
kommt im Emulator folgende meldung:


The application Rechner
(process tadly.bplaced.de) has
stopped unexpectedly. Please
try again.

Irgendwelche vorschläge? ^^

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

09.02.2010, 15:15:28 via Website

hehe

einfach mal google fragen, würde evtl. schneller gehen.

click im eclipse auf die debug view da siehst du dann die log ausgaben.

entweder weißt gleich was der fehler ist ( tippe mal auf manifest datei ) oder kopierst das hier rein

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

10.02.2010, 17:22:47 via Website

Um Barlow einmal zu zetieren:
"Zomfgololol"

warum?
ich weiß nich weiter ^^

habe einmal den Landscape-mode
kann ich starten und rechnen

dann hab ich den Portrait-mode
der läuft mir auf einen NullPointerException

und zwar sagt er in meiner "onCreate"

02-10 16:11:48.220: ERROR/AndroidRuntime(842): Caused by: java.lang.NullPointerException
02-10 16:11:48.220: ERROR/AndroidRuntime(842): at tadly.bplaced.de.calc.onCreate(calc.java:118)
02-10 16:11:48.220: ERROR/AndroidRuntime(842): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
02-10 16:11:48.220: ERROR/AndroidRuntime(842): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)

komisch nur das es im Landscape-mode einwandfrei funktioniert und Portrait nicht

hatt jemand, oder du Markus ^^, einen Rat?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

10.02.2010, 17:45:37 via Website

naja niemand kann wissen was in deiner calc.java auf zeile 118 ( evtl auch ein wenig davor ) passiert

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

10.02.2010, 17:47:29 via Website

das haben wir gleich ;-)

ich versteh trotzdem nicht warum es im landscape mode geht und im portrait nicht

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

10.02.2010, 17:48:58 via Website

Okeeeee habs....

zeile 118 ist mein setOnClickListener auf this

xD

und ich dachte immer...

naja hat der hald nen taschenrechner programmiert ^^
wo is da des problem :-P

ich sollte lernen nicht so voreilig zu sein ^^

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

11.02.2010, 07:19:03 via Website

Jetz weiß ich was der fehler ist....

kann ich in meiner classe, in der ich den onClickListener mache abfragen ob
ich im Landscape oder im Portrait-Modus bin?

Achja und Markus...
Dickes Dankeschön das du mir so hilfst ;-)

— geändert am 11.02.2010, 07:19:27

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

11.02.2010, 09:02:54 via Website

du kannst schon abfragen, welche orientation gerade ist, aber ich bin mir sicher, dass das nicht dein fehler ist. denn das sollte keinen großen unterschied in der programmierung machen. evtl kopierst du mal mehr code hier rein

swordiApps Blog - Website

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

11.02.2010, 09:03:19 via Website

Jan Schimanski


naja hat der hald nen taschenrechner programmiert ^^
wo is da des problem :-P

ich sollte lernen nicht so voreilig zu sein ^^

lol und das ist nur ein simpler taschenrechner

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

11.02.2010, 09:06:27 via Website

und wie kann ich das abfragen?

p.s. was heißt da simple ^^

nen fetten wissenschaftlichen teil hab ich natürlich auch drin ^^

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

11.02.2010, 09:20:28 via Website

ja des mit der nullpointer hab ich schon...
also hab ich relativ xD

ich brauch eben die abfrage ob ich im portrait oder layout bin...

den im portrait mod darf er den clickListener nur halb mal so oft machen
als im landscape :-P

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

11.02.2010, 10:55:48 via Website

du kannst schon abfragen, welche orientation gerade ist, aber ich bin mir sicher, dass das nicht dein fehler ist

Mein erster Gedanke war, das er dann wohl nicht zwei identische Layouts gemacht hat und darum einer seiner findViewById() Aufrufe null liefert :)
Aber das sollte er dann natürlich nicht durch Abfragen der Orientierung testen ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 372

11.02.2010, 14:59:14 via Website

Zwei sachen noch....

Ich finde es einfach nicht...

1. Wo kann ich das einstellen, das mein taschenrechner den ganzen Bildschirm einnehmen soll?
2. ich habe bei den buttons, bei background ein eigenes image eingeschmissen...
kann ich jetz irgendwo einstellen das das handy einen vibrations-impuls gibt wenn ich eine taste
drücke?
Oder das er einen Effekt drüber legt, das man sieht das der butten gedrückt wird

Schon mal vielen dank

Antworten