ImageButton bei onClick

L

lewa19

Neues Mitglied
0
Hallo. Ich habe vor einem halben Jahr mit dem Programmieren begonnen. Seitdem beschäftigt mich die Frage, warum ein Button ohne Hintergrund beim Berühren kurzzeitig seine Hintergrundfarbe ändert und einer mit Hintergrund, egal ob Farbe oder Drawable, das nicht tut. Woran liegt Das?

Mein zweites Problem ist: ich habe eine (noch lange nicht Fertige) App mit 3 Activities. Aus der MainActivity kann ich die DesignActivity öffnen, mit der man den Hintergrund des Layouts "main" aus MainActivity ändern kann. Dazu sende ich via Intent einen Befehl von DesignActivity zur MainActivity, zum Beispiel der Hintergrund mit dem Namen "Bubbles":
Code:
Intent newdesign = new Intent
		(
			DesignActivity.this,
			MainActivity.class
		);
newdesign.putExtra("neuesdesign", "Bubbles");
startActivity(newdesign);
finish();

In der MainActivity baue ich den Text in eine TextView ein:
Code:
try{
		Intent newdesign = getIntent();
		designdeclarer=newdesign.getStringExtra("neuesdesign");
		if(designdeclarer.equals("")){
			backdesign.setText("Watercolor (Standard)");
		}else{
			backdesign.setText(designdeclarer);
		}
	}
		catch(Exception e){
			backdesign.setText("Watercolor (Standard)");
		}
Dann setzt ein Runnable, je nachdem, welcher Text geschrieben ist, einen Hintergrund:
Code:
handler.postDelayed(updateBack, 500);
private Runnable updateBack = new Runnable(){
		@Override
		public void run()
		{
			if(backdesign.getText().toString().equals("Watercolor (Standard)")){
				mainbackground.setBackgroundDrawable(getResources().getDrawable(R.drawable.centerback));
			
			}else{if(backdesign.getText().toString().equals("Bubbles")){
					mainbackground.setBackgroundDrawable(getResources().getDrawable(R.drawable.centerback2));
				}}
                  }
   };
Wenn ich das einmal mache, funktioniert das bestens. Mache ich es jedoch nochmal, zeigt mir die TextView zwar noch den Namen des Hintergrundes an, nach einer halben Sekunde (vgl. handler) stürzt die App jedoch ab, ohne den Hintergrund neu zu setzen. Starte ich die 3. Activity, nachdem ich den Hintergrund einmal geändert habe, stürzt die App ebenfalls ab. Ändere ich den Hintergrund zuvor nicht, funktioniert auch das einwandfrei. Was mache ich falsch?

Danke im voraus!:thumbsup:
 
Zuletzt bearbeitet:
1. BITTE: Bringe diesen augenkrebsfördernden Code in die CODE Klammern. :scared::blink:
Total unübersichtlich so.
2. Kannst du mal uns zeigen was die Logcat zu den Abstürzen sagt?
Wir sind Programmierer nich Hellseher! :flapper:

Freundliche Grüsse Andreas
 
  • Danke
Reaktionen: ui_3k1
Ich hab hier noch nie was geschrieben. Wie mach ich das "in Klammern setzen"? So irgendwie, oder:
Code:
...
[CODE]
 
lewa19 schrieb:
Ich hab hier noch nie was geschrieben. Wie mach ich das "in Klammern setzen"? So irgendwie, oder:
Code:
...
[CODE][/quote]

Es gibt da so ein Zeichen in der menuleiste oben: "#"

Der generiert automatisch: [CODE] [\CODE] (Kein Backslash sonern das normale "/" musste das Backslash nehmen weil es es sonst schon als Code erkennt). Dort drin kannst du dann den Code schreiben.
 
Hallo,

du beschreibst gut, was bei deiner App passiert, aber wirklich viel "herauslesen" kann man durch diese Aussagen erfahrungsgemäß nicht.
Wichtig sind Logcat-Ausgaben. Vermutlich hast du irgendwo einen Null-Pointer, sprich es wird versucht auf etwas zuzugreifen, was es nicht gibt, bzw zu dessen Objekt es keine gültige Speicheradresse gibt.
Daher mein Tipp:
In Logcat nachsehen ggf. die Meldung hier nochmal ins Forum stellen.

Bitte in Code-Blöcken!

Um ein Hintergrundbild zu ändern ist die Vorgehensweise mit dem Intent so ziemlich die Unsinnvollste, die ich mir gerade vorstellen kann. ^^ (wo hast du das her?)

Der ursprüngliche Beitrag von 21:12 Uhr wurde um 21:13 Uhr ergänzt:

Code:
[/ code] <- nur das Leerzeichen weglassen
 
Ich nutze eine App namens "AIDE" und programmiere auf dem Tablet. Dort kann man leider den LogCat nicht kopieren. Da steht aber auch nur immer das Datum + Uhrzeit + package Name drin. Keine Fehlermeldungen etc.. Ich gebe aber zu, mich mit dem LogCat nienwirklich beschäftigt zu haben, weshalb ich mir da auch nicht zu helfen wüsste.

Auf deine Frage, wie ich auf din Idee komme, den Hintergrund auf diese Weise zu ändern: das Programmieren hat mir nie jemand beigebracht. Und da ich nicht weiß, wie ich es sonst machen sollte, habe ich, meinen bescheidenen Fähigkeiten angepasst:biggrin:, diese Methode gewählt.
 
Hmm, von AIDE hab ich noch nix gehört, deswegen auch leider keine Erfahrungen damit. Aber um Logcat kommt man wohl nicht herum^^

Hehe, okay :) Kreativität hast du ja auf jeden Fall. Das ist gut und kann dir beim Programmieren auch an sehr vielen Stellen helfen. :)
Allerdings mein gut gemeinter Rat: Eigne dir erst die Grundlagen an und nutze dann deine Kreativität sinnvoll und vor allem viel effizienter. ;)

Getting Started | Android Developers

Nicht als negative Kritik verstehen, aber bevor du dir weiter selbst das Leben schwer machst, empfehle ich dir die Basics zu lernen. :)
Meiner Meinung nach ist es nicht notwendig gleich die komplette Doku durchzulesen, dafür aber die Themen, die einen interessieren um so genauer.
 

Ähnliche Themen

D
Antworten
17
Aufrufe
427
datNeMo
D
M
Antworten
3
Aufrufe
187
moin
M
Y
Antworten
4
Aufrufe
1.240
swa00
swa00
Zurück
Oben Unten