Verständnisfrage Code

newbie2009

Bekanntes Mitglied
Hey Leute ich habe mal eine Verständnisfrage zum folgenden Code,
auf den ich bei der Entwicklung einer Android-Anwendung gestoßen bin.


Java:
   @Override
    public Fragment getItem(int position)
    {
        if (position == 0)
        {
            if (mFragmentAtPos0 == null)
            {
// -------diese Zeile verstehe ich nicht, warum darf hier der Parameter gesetzt werden-------
                mFragmentAtPos0 = FirstPageFragment.newInstance(new FirstPageFragmentListener()
                {
                    public void onSwitchToNextFragment()
                    {
                        mFragmentManager.beginTransaction().remove(mFragmentAtPos0).commit();
                        mFragmentAtPos0 = NextFragment.newInstance();
                        notifyDataSetChanged();
                    }
                });
            }
            return mFragmentAtPos0;
        }
        else
            return SecondPageFragment.newInstance();
    }

Und zwar verstehe ich die markierte Zeile nicht, warum darf
Java:
newIstance()
einen Parameter in dieser Form haben. Ok es scheint eine Implementierung des Interfaces
Java:
FirstPageFragmentListener
zu sein, aber ist die allgemeine Form für sowas nicht so:

Java:
  Point p = new Point( 10, 12 ) {
      @Override
      public String toString() {
        return "(" + x + "," + y + ")";
      }
    };


die Methode
Java:
newInstance()
schaut wie folgt aus:

Java:
 public static FirstPageFragment newInstance() {
            FirstPageFragment f = new FirstPageFragment();
            return f;
        }

Hmm vielen Dank im Voraus, ich hoffe mir kann jemand weiterhelfen.


mfg newbie
 
G

Gast2

Gast
Die Methode newInstance erwartet scheinbar eine Instanz die FirstPageFragmentListener implementiert. Durch die anonyme Klasse erstellst du da eine solche Instanz.
 

newbie2009

Bekanntes Mitglied
Die Methode newInstance erwartet scheinbar eine Instanz die FirstPageFragmentListener implementiert. Durch die anonyme Klasse erstellst du da eine solche Instanz.

Ja aber die Methode newInstance hat doch keinen ÜbergabeParameter, wenn ich diesen Code in Eclipse einfüge, schlägt mir Eclipse vor, die Methode so zu verändern, dass sie einen Parameter enthält. Aber das ist ja nicht der Sinn, schließlich soll ja das Interface implementiert werden. Anders gefragt, wenn ich ein Interface nach dem Muster

Java:
  Point p = new Point( 10, 12 ) {
      @Override
      public String toString() {
        return "(" + x + "," + y + ")";
      }
    };

implementieren soll, warum meckert dann eclipse, wenn ich den Code wie folgt ändere:

Java:
 mFragmentAtPos0= testFragment.newInstance(){
			 
	@Override
 public void onSwitchToNextFragment(){......}                 
	 };
 
S

SlaterB

Gast
wenn ich in der Küche eine Dose öffne, wieso bellt dann der Hund im Garten?

deine Frage, deine 'Anders gefragt'-Beispiele, scheinen keinen Sinn zu ergeben,
beschreiben doch in Worten, welche Parallelen du meinst

wobei ich jetzt doch noch was sehe:
> new Point( 10, 12 ) ist die direkte Angabe einer Klasse,
von dieser kann man an dieser Stelle mit {} eine anonyme Subklasse erstellen

mit dem Rückgabewert einer Methoden, einem fertig erstellten Objekt, kann man dasselbe nicht machen, das wäre zu kompliziert,

zumal du da noch etwas vermischst: Subklassen sind so ähnlich wie Oberklassen, der erstellte Point ist immer noch in etwa ein Point,
newInstance() liefert anscheinend ein Fragment zurück, da hat die Methode onSwitchToNextFragment() von anscheinend FragmentListener nicht unbedingt etwas zu suchen

was willst du tun?
erstellen einen FragmentListener in einer Zeile für sich,
danach erst kommt irgendwann newInstance() dran
 

newbie2009

Bekanntes Mitglied
wenn ich in der Küche eine Dose öffne, wieso bellt dann der Hund im Garten?

deine Frage, deine 'Anders gefragt'-Beispiele, scheinen keinen Sinn zu ergeben,
beschreiben doch in Worten, welche Parallelen du meinst

wobei ich jetzt doch noch was sehe:
> new Point( 10, 12 ) ist die direkte Angabe einer Klasse,
von dieser kann man an dieser Stelle mit {} eine anonyme Subklasse erstellen

mit dem Rückgabewert einer Methoden, einem fertig erstellten Objekt, kann man dasselbe nicht machen, das wäre zu kompliziert,

zumal du da noch etwas vermischst: Subklassen sind so ähnlich wie Oberklassen, der erstellte Point ist immer noch in etwa ein Point,
newInstance() liefert anscheinend ein Fragment zurück, da hat die Methode onSwitchToNextFragment() von anscheinend FragmentListener nicht unbedingt etwas zu suchen

was willst du tun?
erstellen einen FragmentListener in einer Zeile für sich,
danach erst kommt irgendwann newInstance() dran

Alles was ich tun wollte, ist den folgenden Code zu verstehen( speziell die im ersten Beitrag markierte Zeile, macht für mich keinen Sinn) und an meine Klassen anzupassen. Aber anscheinend habe ich da so einiges durcheinander gebracht und bin nun total verwirrt.

Hier der Code( der Beitrag mit 11 Votings): android - Replace Fragment inside a ViewPager - Stack Overflow
 
Zuletzt bearbeitet:
S

SlaterB

Gast
im ersten Posting warst du da näher dran,
da fragtest du u.a. ob newInstance() einen Parameter haben darf (Form erstmal egal),
eine gute Frage, die Methode muss dafür wahrscheinlich angepasst werden,
etwas unklar wenn irgendwo im Forum verschiedene Leute Code posten

wenn man nur den Parameter betrachtet,
Java:
new FirstPageFragmentListener()  {
                    public void onSwitchToNextFragment() {
usw.

dann ist das weitgehend wie
Java:
new Point( 10, 12 ) {
      @Override
      public String toString() {
ok?
 

newbie2009

Bekanntes Mitglied
Ok so weit klar, also meinst du, dass die Methode newInstance() aufjedenfall einen Parameter braucht, aber hier im Antwortenchaos, dieser Sachverhalt einfach nicht klar wird ?:)
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
so kann man es sagen, wobei Chaos auch nicht gleich nötig ist,
ein Parameter ist eine Kleinigkeit, kann man auch einfach offen lassen,

es geht vielleicht auch ohne, hier etwa
Java:
mFragmentAtPos0 = FirstPageFragment.newInstance();
mFragmentAtPos0.addIrgendeinListener(new FirstPageFragmentListener()
wobei freilich FirstPageFragmentListener ein komplett neues Interface war,
dessen Verwendung muss komplett überall erst noch eingebaut werden, eine viel größere Sache,
(falls es nicht doch schon FragmentListener gibt, und diese Vererbung wiederum weggelassen ist)

also da denke ich langsam auch, dass das zu kurz dargestellt ist,
aber so wie du die Fragen stellst hast du noch ganz andere Verständnisschwierigkeiten als sich direkt ergeben
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben