1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Textviev aufklappen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von loocker, 11.04.2012.

  1. loocker, 11.04.2012 #1
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Hi,
    ich bin gerade dabei eine App zu entwickeln. Jetzt hab ich eine Textview erstellt die die Daten aus der DB anzeigt. Soweit so gut, jetzt ist das ziemlich viel Text und belegt fast den ganzen Bildschirm, was nicht so toll aussieht. Habe in den Android Referenzen gelessen das man die Textview auf eine bestimmt Anzahl von Zeile beschränken kann,das wäre noch die Alternative. Ich würde es aber gerne so machen, das nur so drei Zeilen angezeigt werden und der Rest wenn man drauf klickt, so wie im Google Play bei der Beschreibung, wenn die länger sind. Habe nichts finden können. Hoffe jemand kann helfen.

    Gesendet von meinem GT-I9000 mit Tapatalk
     
  2. swordi, 11.04.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    das ist eher keine standardkomponente. das verhalten musst selbst implementieren.
     
  3. loocker, 11.04.2012 #3
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Ok, eine Idee wie man da am besten ran geht?

    Gesendet von meinem GT-I9000 mit Tapatalk
     
  4. swordi, 11.04.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja ich würd mir eine custom komponente bauen,

    linearlayout
    textview
    pfeil zum öffnen

    dann einfach die zeilenanzahl festlegen. zu beginn 3 zeilen - bei einem klick dann alle zeilen.

    es ist aber gut möglich, dass man im netz den code für so eine komponente finden kann. ist aber sicher relativ schnell implementiert
     
  5. loocker, 15.04.2012 #5
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Hjetzt nochmal in english gegooglet und diese Seite widget - How to implement expandable panels in Android? - Stack Overflow gefunden.
    Habe das mal 1 zu 1 übernommen, aber wenn ich eine Layout xml erstelle und diesen Code dort einfüge bekomme ich in der rot makierten Zeile folgende Fehlermeldung in eclipse:
    AndroidManifest: Ignoring unknown 'com.example.androidapp.widgets.ExpandablePanel' XML element

    Code:
    [COLOR=red]<com.example.androidapp.widgets.ExpandablePanel[/COLOR][COLOR=red] [/COLOR]
        android:orientation="vertical" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        example:handle="@+id/expand" 
        example:content="@+id/value" 
        example:collapsedHeight="50dip"> 
        <TextView 
            android:id="@id/value" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:maxHeight="50dip" 
            /> 
        <Button 
            android:id="@id/expand" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="More" /> 
    </com.example.androidapp.widgets.ExpandablePanel>
    Jemand eine Idee woran das liegt?
     
  6. StefMa, 16.04.2012 #6
    StefMa

    StefMa Gewerbliches Mitglied

    Beiträge:
    2,054
    Erhaltene Danke:
    413
    Registriert seit:
    16.10.2010
    Öh lol? :D
    Schon mal Programmiert? :>

    [Habe mir die Seite nicht angeschaut]
    Der erste Teil sagt ja imme aus welcher View/Widget - wie auch immer - du benutzen willst. Also z.b. <Button> oder <TextView>. Beide sind Standardkomponenten von Android => Die Xml kann damit was anfangen.

    Dein Widget, musst du natrülich erst erstellen.
    D.h. dein Widget-Programmcode (Also ExpandablePanel) muss im Package "com.example.androidapp" leigen..

    Iwie muss also stehen, wie das Widget "ExpandablePanel" auszusehen - als Java-Code - hat!

    Gruß
     
  7. loocker, 16.04.2012 #7
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Die ExpendablePanel class und die attrs XML hab ich schon angelegt gehabt. Deswegen wundere ich mich ja über den Fehler.

    Gesendet von meinem GT-I9000 mit Tapatalk
     
  8. StefMa, 16.04.2012 #8
    StefMa

    StefMa Gewerbliches Mitglied

    Beiträge:
    2,054
    Erhaltene Danke:
    413
    Registriert seit:
    16.10.2010
    Dann musst du nochmal genauer auf dein Projekt gucken.

    packae müsste den namen haben: "com.example.androidapp.widgets"
    die classe dazu musst: "ExpandablePanel"
    heißen..

    Dann müsste es gehen.. Schau einfach nochmal genauer drauf ;) Du übersiehst bestimmt nur etwas..

    Gruß
     
  9. loocker, 16.04.2012 #9
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    habe noch mal alles geprüft, ist alles richtig angelegt, denke ich.
    Habe ein Package angelegt
    "package
    com.example.androidapp.widgets; ", darin die Classe
    ExpandablePanel und unter values die attrs.xml und in layout eine main.xml wo ich den unten stehenden Code eingefügt habe. Bekomme den Fehler "Description Resource Path Location Type
    error: Error parsing XML: unbound prefix main.xml /Probe/res/layout "
    in dieser Zeile "<com.example.androidapp.widgets.ExpandablePanel" und als warnings noch "Description Resource Path Location Type
    Attribute is missing the Android namespace prefix main.xml /Probe/res/layout " bei allen Zeilen zwichen Button und textview. Echt komisch. Muss man so custom layouts noch irgendwie in die Android manifest eintragen?

     
  10. loocker, 20.04.2012 #10
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Keiner eine Idee wo der Fehler noch liegen könnte?

    Gesendet von meinem GT-I9000 mit Tapatalk
     
  11. Tom299, 20.04.2012 #11
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Poste doch mal deinen Code + XML dann sieht man vielleicht was
     
  12. loocker, 22.04.2012 #12
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Hier die ExpandablePanel Klasse
    Code:
    package com.example.androidapp.widgets; 
     
    import android.content.Context; 
    import android.content.res.TypedArray; 
    import android.util.AttributeSet; 
    import android.view.View; 
    import android.view.animation.Animation; 
    import android.view.animation.Transformation; 
    import android.widget.LinearLayout; 
     
    import com.example.androidapp.widgets.*; 
     
    public class ExpandablePanel extends LinearLayout { 
     
        private final int mHandleId; 
        private final int mContentId; 
     
        private View mHandle; 
        private View mContent; 
     
        private boolean mExpanded = true; 
        private int mCollapsedHeight = 0; 
        private int mContentHeight = 0; 
     
        public ExpandablePanel(Context context) { 
            this(context, null); 
        } 
     
        public ExpandablePanel(Context context, AttributeSet attrs) { 
            super(context, attrs); 
     
            TypedArray a = context.obtainStyledAttributes(attrs, 
                R.styleable.ExpandablePanel, 0, 0); 
     
            // How high the content should be in "collapsed" state 
            mCollapsedHeight = (int) a.getDimension( 
                R.styleable.ExpandablePanel_collapsedHeight, 0.0f); 
     
            int handleId = a.getResourceId(R.styleable.ExpandablePanel_handle, 0); 
            if (handleId == 0) { 
                throw new IllegalArgumentException( 
                    "The handle attribute is required and must refer " 
                        + "to a valid child."); 
            } 
     
            int contentId = a.getResourceId(R.styleable.ExpandablePanel_content, 0); 
            if (contentId == 0) { 
                throw new IllegalArgumentException( 
                    "The content attribute is required and must refer " 
                        + "to a valid child."); 
            } 
     
            mHandleId = handleId; 
            mContentId = contentId; 
     
            a.recycle(); 
        } 
     
        @Override 
        protected void onFinishInflate() { 
            super.onFinishInflate(); 
     
            mHandle = findViewById(mHandleId); 
            if (mHandle == null) { 
                throw new IllegalArgumentException( 
                    "The handle attribute is must refer to an" 
                        + " existing child."); 
            } 
     
            mContent = findViewById(mContentId); 
            if (mContent == null) { 
                throw new IllegalArgumentException( 
                    "The content attribute is must refer to an" 
                        + " existing child."); 
            } 
     
            mHandle.setOnClickListener(new PanelToggler()); 
        } 
     
        @Override 
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
            if (mContentHeight == 0) { 
                // First, measure how high content wants to be 
                mContent.measure(widthMeasureSpec, MeasureSpec.UNSPECIFIED); 
                mContentHeight = mContent.getMeasuredHeight(); 
            } 
     
            // Then let the usual thing happen 
            super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
        } 
     
        private class PanelToggler implements OnClickListener { 
            public void onClick(View v) { 
                Animation a; 
                if (mExpanded) { 
                    a = new ExpandAnimation(mContentHeight, mCollapsedHeight); 
                } else { 
                    a = new ExpandAnimation(mCollapsedHeight, mContentHeight); 
                } 
                a.setDuration(500); 
                mContent.startAnimation(a); 
                mExpanded = !mExpanded; 
            } 
        } 
     
        private class ExpandAnimation extends Animation { 
            private final int mStartHeight; 
            private final int mDeltaHeight; 
     
            public ExpandAnimation(int startHeight, int endHeight) { 
                mStartHeight = startHeight; 
                mDeltaHeight = endHeight - startHeight; 
            } 
     
            @Override 
            protected void applyTransformation(float interpolatedTime, 
                Transformation t) { 
                android.view.ViewGroup.LayoutParams lp = mContent.getLayoutParams(); 
                lp.height = (int) (mStartHeight + mDeltaHeight * interpolatedTime); 
                mContent.setLayoutParams(lp); 
            } 
     
            @Override 
            public boolean willChangeBounds() { 
                // TODO Auto-generated method stub 
                return true; 
            } 
        } 
    }
    Dann die Activity welche das Layout (main.xml) beutzt
    Code:
    package com.example.androidapp.widgets;
    import android.app.Activity;
    import android.os.Bundle;
    public class ProbeActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
    Die main.xml in res/layout
    Code:
    [SIZE=2][COLOR=#008080]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080][LEFT]<?[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]xml[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]version[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]=[/COLOR][/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1.0"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]encoding[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]=[/COLOR][/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"utf-8"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]?>[/LEFT]
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT]
    [/LEFT]
    [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080][LEFT]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]com.example.androidapp.widgets.ExpandablePanel [COLOR=red]Hier wird der Fehler angezeigt![/COLOR][/LEFT]
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:orientation[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"vertical"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_height[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"wrap_content"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_width[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"fill_parent"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]example:handle[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"@+id/expand"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]example:content[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"@+id/value"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]example:collapsedHeight[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"50dip"[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]TextView[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:id[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"@id/value"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_width[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"fill_parent"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_height[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"wrap_content"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:maxHeight[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"50dip"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]/>[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]Button[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:id[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"@id/expand"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_width[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"wrap_content"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:layout_height[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"wrap_content"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 
    [/SIZE][U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]android:text[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"More"[/I][/U][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]/>[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/LEFT]
    [/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]</[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]com.example.androidapp.widgets.ExpandablePanel[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>
    
    [/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][/COLOR][/SIZE]
    und dann noch die attrs.xml in res/values
    Code:
    [SIZE=2][COLOR=#008080]
    [LEFT][SIZE=2][COLOR=#008080]<?[/LEFT]
    [/LEFT]
    [/COLOR][/SIZE][/COLOR][/SIZE][LEFT][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]xml[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]version[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1.0"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]encoding[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"utf-8"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]?>[/COLOR][/SIZE][/COLOR][/SIZE]
    [LEFT][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/LEFT]
    [/LEFT]
    [/COLOR][/SIZE][/COLOR][/SIZE][LEFT][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]resources[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>[/COLOR][/SIZE][/COLOR][/SIZE]
    [LEFT][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]declare-styleable[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]name[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"ExpandablePanel"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>[/COLOR][/SIZE][/COLOR][/SIZE]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]attr[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]name[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"handle"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]format[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"reference"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]/>[/COLOR][/SIZE][/COLOR][/SIZE]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]attr[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]name[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"content"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]format[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"reference"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]/>[/COLOR][/SIZE][/COLOR][/SIZE]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]attr[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]name[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"collapsedHeight"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]format[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"dimension"[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]/>[/COLOR][/SIZE][/COLOR][/SIZE]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]</[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]declare-styleable[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT]
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]</[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]resources[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]>[/COLOR][/SIZE]
    [/COLOR][/SIZE]
     
  13. DieGoldeneMitte, 23.04.2012 #13
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Du musst in deiner main.xml im Root Element deine Namespaces (android und example) definieren.
    Das muss man immer, wenn in der xml Datei Attribute mit Doppelpunkt vorkommen.

    In dem Stackoverflowartikel fehlt es vermutlich deshalb, weil dort das Panel nicht Rootelement war.

    Übrigens:
    Code:
    package com.example.androidapp.widgets;
    ...
    import com.example.androidapp.widgets.*; 
    
    Ist etwas redundant :D
     
    Zuletzt bearbeitet: 23.04.2012
  14. loocker, 23.04.2012 #14
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    habe es jetzt mal so abgeändert
    Code:
     
    [SIZE=2][COLOR=#008080][SIZE=2][COLOR=#008080]<[/COLOR][/SIZE]
    [LEFT][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f7f][SIZE=2][COLOR=#3f7f7f]com.example.androidapp.widgets.ExpandablePanel[/COLOR][/SIZE][/COLOR][/SIZE]
    
    [SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]xmlns:android[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]=[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"http://schemas.android.com/apk/res/android"[/COLOR][/SIZE][/COLOR][/SIZE][/I]
    
    [U][SIZE=2][COLOR=#7f007f][SIZE=2][COLOR=#7f007f]xmlns:app[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]="[/SIZE][I][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff][URL]http://schemas.android.com/apk/res/com.example.androidapp.widgets[/URL]"[/COLOR][/SIZE][/COLOR][/SIZE][/I][/U][/LEFT]
    
    ...
    
    bekomme aber immer noch den Fehler angezeigt:
    error: Error parsing XML: unbound prefix



     
  15. Tom299, 23.04.2012 #15
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
  16. DieGoldeneMitte, 23.04.2012 #16
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Wenn du "app:" als Namespace definierst, kannst du nicht "example:" als Namespace nutzen.
     
    loocker bedankt sich.
  17. loocker, 23.04.2012 #17
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Ich glaub ich habe es kapiert. Der xmlns ist quasi nur eine Abkürzung. Also kommt example als namespace dort hin damit ich in meiner xml view, bzw. Wie bei den Standards von Android nicht immer den ganzen Pfad angeben muss, sondern nur den zuvor definierten Namespace. Werde es gleich mal ausprobieren, wenn ich zu hause bin.

    Gesendet von meinem GT-I9000 mit Tapatalk
     
  18. loocker, 25.04.2012 #18
    loocker

    loocker Threadstarter Junior Mitglied

    Beiträge:
    44
    Erhaltene Danke:
    3
    Registriert seit:
    13.09.2011
    Nach der Änderung hat es sofort geklappt. :D
     

Diese Seite empfehlen