Mit Button boolean auf true setzen?

  • Antworten:6
  • Bentwortet
Valentin S.
  • Forum-Beiträge: 13

27.04.2012, 13:46:40 via Website

Hallo,

Ich habe gerade erst angefangen Apps zu pogrammieren und habe eine Frage die sich sicher lächerlich anhört, aber ich komme einfach nicht weiter.

Ich möchte einen bestimmten Button drücke und damit ein boolean auf true setzen, um mit einer if-Abfrage weiter Schritte auszuführen zu können
Wenn ich aber bei dem button android:onClick = "Programmname" hinzufüge und dann im Java File folgendes schreibe:
public void Pogrammname (View v)
{
Attribut = true ;
}

und in einem anderen Pogramm dann eine if-Abfrage mache werden die Befehle in der Abfrage nicht ausgeführt

Valentin

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

27.04.2012, 14:41:53 via Website

Hey,
hast du mal mit dem Debugger nachgesehen, ob die Stelle aufgerufen wird?
(Link)
Lg Ansgar

Antworten
Valentin S.
  • Forum-Beiträge: 13

27.04.2012, 16:09:37 via Website

Hallo,
Wie komme ich zum Entwicklerforum ?

Er änderst das Attribut aber die if-Abfrage im anderen Unterprogramm wird nicht ausgeführt ..

Wie komme ich vom Unterpogramm "Programmname" wieder in das andere Programm welches mein Hauptprogramm ist ?

Valentin

Antworten
Aeefire
  • Forum-Beiträge: 172

27.04.2012, 18:37:42 via Website

Ich empfehle dir erstmal ein Java - Einführungsbuch, bevor du mit Android anfängst :)

Ich schätze mal dein code sieht in etwa so aus... (pseudocode)

public class Activitybla extends Activity{


boolean attribut;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main) // HIER UNBEDINGT DIE VERWENDETE LAYOUT-Datei ANGEBEN!! (XML)
}

public void programmname(View v){
attribut = true;
goOn();
}

public void goOn(){
if(attribut != null){
if(attribut){
// mach irgendwas
}
}
}

}

so würde ich es lösen, dann ist garantiert, dass, wenn der Button gedrückt wird, die Fuktion goOn() oder wie auch immer du sie nennen willst, ausgelöst wird. dann noch die Standardabfragen ob attribut überhaupt einen wert hat (!null) und ob attribut = true ist (da macht man einfach if(attribut) ).

Wenn du die if-Abfrage einfach in's onCreate reinschmeißt wird sie zwar durchgeführt, aber "attribut" (btw. bitte klein schreiben, groß schreibt man Klassennamen) hat keinen wert und du bekömmst höchstwahrscheinlich nur eine NullPointerException, da es entweder attribut noch garnicht gibt (kA ob dus vorher schonmal angeführt hast mit "boolean attribut") oder es ist eben "attribut = false" (das überprüft man in einer if abfrage mit if(!attribut)...

jetzt wird eben, sobald der button gedrückt wird in der Methode programmname(View v) (wieder klein schreiben bitte, es ist eine METHODE!) goOn() ausgeführt und damit das Programm weitergeführt. onCreate benützt man eher für sachen wie GUI bestücken o.ä.

aber wie schon erwähnt, ich empfehle dir ein Java Tutorial... oder am besten ein kleines Büchlein, dass die Grundlagen lehrt ;) Ist keine Hexerei, wenn man ein paar Grundlagen weiß!


edit: hier der source nochmal schöner formatiert: http://pastebin.com/121pZBBJ

— geändert am 27.04.2012, 18:38:27

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

27.04.2012, 21:16:09 via Website

@Aeefire
1if(attribut != null){
2 if(attribut){
3 // mach irgendwas
4 }
5}
Der Code wird so nicht kompilieren :) Entweder es ist eine primitive Boolean Variable, welche man nicht auf null prüfen kann, oder es ist ein Objekt, welches man so nicht bei einem booleschen Vergleich einsetzen kann..
Wollte mal klugsch**en :grin:
Lg Ansgar

Antworten
Valentin S.
  • Forum-Beiträge: 13

29.04.2012, 19:14:41 via App

danke !!
habe mir jetzt einige java Einfürungen durchgelesen und verstehe jetz die Basics

Antworten