Kleine Frage zu Methoden & OOP

JavaLooser

Mitglied
Juten Tach!

Ich habe ein kleines Programm in dem der selbe Code 5 mal vorkommt.
Dieser Code (de-)aktiviert Knöpfe abhängig davon, welche an und aus sind (isn kleines Logikspielchen).

Mein Problem:
Ich will diesen Code in eine Funktion auslagern. Dann aber hat der Code keinen Zugriff mehr auf den Status der jeweiligen Knöpfe, vermutlich wg. Namespace-Fu.
Nun sollte das ja (wg. "no side effects") an sich so sein, dass ich die Funktion aufrufe, ihr die 5 Werte (5 Knöpfe je an oder aus) als Parameter übergebe und 5 Werte zurückerhalte, mit denen ich die Knöpfe dann (de-)aktiviere.
Wenn ich das so implementiere brauchts aber genausoviel oder noch mehr Code, ich möchte deshalb, dass sich die Funktion die Info selber holt und die Knöpfe selbst (de-)aktiviert.
Ist es denn nicht möglich aus einer Methode auf Kram in einer anderen Methode zuzugreifen, und wenn doch, wie ist die korrekte Syntax (hab schon diverses probiert, Tutorials halb kopiert, nix ging)?

Hier der Quellcode:
[Java]package com.blatest.Vecti3;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.ToggleButton;

public class play extends Activity {

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.play);

final CompoundButton buttonH = (ToggleButton) findViewById(R.id.ToggleButtonH);
final CompoundButton buttonR = (ToggleButton) findViewById(R.id.ToggleButtonR);
final CompoundButton buttonS = (ToggleButton) findViewById(R.id.ToggleButtonS);
final CompoundButton buttonV = (ToggleButton) findViewById(R.id.ToggleButtonV);
final CompoundButton buttonW = (ToggleButton) findViewById(R.id.ToggleButtonW);

buttonH.setEnabled(false);
buttonS.setEnabled(false);
buttonV.setEnabled(false);

OnClickListener buttonHlistener = new OnClickListener(){
public void onClick(View v) {
buttonR.toggle();
buttonS.toggle();
buttonV.toggle();
buttonW.toggle();

if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
}
};
buttonH.setOnClickListener(buttonHlistener);

OnClickListener buttonRlistener = new OnClickListener(){
public void onClick(View v) {
buttonW.setChecked(buttonR.isChecked());

if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
}
};
buttonR.setOnClickListener(buttonRlistener);

OnClickListener buttonSlistener = new OnClickListener(){
public void onClick(View v) {
if(buttonS.isChecked()){
buttonW.setChecked(buttonH.isChecked());
}else{
buttonV.setChecked(buttonW.isChecked());
}

if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
}
};
buttonS.setOnClickListener(buttonSlistener);

OnClickListener buttonVlistener = new OnClickListener(){
public void onClick(View v) {
buttonR.toggle();
buttonV.setChecked(false);

if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
}
};
buttonV.setOnClickListener(buttonVlistener);

OnClickListener buttonWlistener = new OnClickListener(){
public void onClick(View v) {
if(! buttonW.isChecked()){
buttonR.setChecked(false);
buttonW.setChecked(buttonV.isChecked());
buttonH.setChecked(buttonV.isChecked());
}
if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
}
};
buttonW.setOnClickListener(buttonWlistener);
}


}[/code]

Der Code um den es geht sind die 5 aufeinander folgenden if-Statements.

Danke schonmal und Allen einen schönen Tag!
 
J

javaPanther

Gast
Du müsstest die Buttons in den Allgemeinen Namespace auslagern und dann im Konstruktor initialisieren, ebenfalls wäre es möglich die buttons als Parameter zu übergeben und so auf sie zugreifen.

[Java]
public class Auslagern{
Button button;

public Auslagern(){
button = new Button();
}

private ifStatements(){
if(button.isRight)......
}
}
[/Java]
 
S

SlaterB

Gast
oder innerhalb einer Methode eine Basisklasse erstellen, was exotisch aber erlaubt ist
Java:
    public void onCreate(Bundle savedInstanceState)
    {
        final CompoundButton buttonH = null;
        final CompoundButton buttonR = null;
        final CompoundButton buttonS = null;
        final CompoundButton buttonV = null;
        final CompoundButton buttonW = null;

        buttonH.setEnabled(false);
        buttonS.setEnabled(false);
        buttonV.setEnabled(false);

        class OnClickFiveButtonsBaseListener
            extends OnClickListener
        {
            public void checkButtons() {
                if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
                if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
                if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
                if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
                if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
            }

        }

        OnClickListener buttonHlistener = new OnClickFiveButtonsBaseListener()
            {
                public void onClick(View v)
                {
                    buttonR.toggle();
                    buttonS.toggle();
                    buttonV.toggle();
                    buttonW.toggle();

                    checkButtons();
                }
            };
        buttonH.setOnClickListener(buttonHlistener);
 

andiv

Bekanntes Mitglied
Java:
if(buttonW.isChecked()){buttonH.setEnabled(true);}else{buttonH.setEnabled(false);}
if(! buttonH.isChecked()){buttonW.setEnabled(true);}else{buttonW.setEnabled(false);}
if(buttonR.isChecked() && buttonV.isChecked()){buttonS.setEnabled(true);}else{buttonS.setEnabled(false);}
if( (! buttonV.isChecked()) && (! buttonS.isChecked()) && buttonH.isChecked()){buttonV.setEnabled(true);}else{buttonV.setEnabled(false);}
if(buttonR.isChecked() == buttonS.isChecked() && buttonR.isChecked() == buttonV.isChecked()){buttonR.setEnabled(true);}else{buttonR.setEnabled(false);}
-->
Java:
buttonH.setEnabled( buttonW.isChecked() );
buttonW.setEnabled( !buttonH.isChecked() );
buttonS.setEnabled( buttonR.isChecked() && buttonV.isChecked() );
buttonV.setEnabled( !buttonV.isChecked() && !buttonS.isChecked() && buttonH.isChecked() );
buttonR.setEnabled( buttonR.isChecked() == buttonS.isChecked && buttonR.isChecked() == buttonV.isChecked() );

Das nur zusätzlich zu dem was mein Vorposter schon gesagt hat.
 

JavaLooser

Mitglied
2 Lösungsvarianten und ein sehr guter Tipp.
Java mag ich zwar immer noch nicht wirklich, aber dieses Forum hier ist angenehm.

Danke euch Dreien!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
T Kleine Frage Java Basics - Anfänger-Themen 2
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
R Kleine Frage zu Array Java Basics - Anfänger-Themen 2
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
P Eine kleine Frage. Java Basics - Anfänger-Themen 4
M kleine sql abfrage Frage Java Basics - Anfänger-Themen 5
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
G kleine Frage Java Basics - Anfänger-Themen 4
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
X Kleine Frage: Split Java Basics - Anfänger-Themen 13
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
M Erste Schritte 2 Kleine Programme Java Basics - Anfänger-Themen 27
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
M Kleine Konsole mit Threads + KeyAdapter Java Basics - Anfänger-Themen 6
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
G eine kleine verwaltung Java Basics - Anfänger-Themen 2
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Anfängerfrage Java Basics - Anfänger-Themen 10
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G jFTP - kleine Fragen Java Basics - Anfänger-Themen 2
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S kleine suche Java Basics - Anfänger-Themen 9
D kleine spielerei mit swing Java Basics - Anfänger-Themen 5
A Kleine Tabelle . Java Basics - Anfänger-Themen 8
U kleine datenbank Java Basics - Anfänger-Themen 86
Q Wie kann man eine kleine pause im Programm machen? Java Basics - Anfänger-Themen 13
J kleine java aufgabe: ausgabe von sternchen Java Basics - Anfänger-Themen 20
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
T Kleine Verständnissfrage Java Basics - Anfänger-Themen 7
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben