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":
In der MainActivity baue ich den Text in eine TextView ein:
Dann setzt ein Runnable, je nachdem, welcher Text geschrieben ist, einen Hintergrund:
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!
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)");
}
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));
}}
}
};
Danke im voraus!

Zuletzt bearbeitet: