2010-12-14 14 views
0

Ich erstelle benutzerdefinierte Ansicht von EditText abgeleitet. Meine Ansicht ist als innere Klasse wie folgt erklärt:benutzerdefinierte Ansicht wird in XML-Layout unsichtbar

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="DPassValuesEditField"> 
     <attr name="dbFieldName" format="string" /> 
    </declare-styleable> 
</resources> 

Ich füge meine benutzerdefinierte Ansicht xml Layout:

package com.woodshy.glucoXpert.DPass; 

//... 

public class DPassValuesEditActivity extends GenericScreenActivity { 

//... 

public static class DPassValuesEditField extends EditText { 
    protected String mDbFieldName; 


    public DPassValuesEditField(Context context) { 
     super(context); 
    } 

    public DPassValuesEditField(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     TypedArray a = context.obtainStyledAttributes(attrs, 
       R.styleable.DPassValuesEditField); 

     CharSequence s = a 
       .getString(R.styleable.DPassValuesEditField_dbFieldName); 
     if (s != null) { 
      mDbFieldName = s.toString(); 
     } 

    } 

    //... 
} 
} 

res/attrs.xml Datei sieht wie folgt aus

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.woodshy.glucoXpert" 
    android:id="@+id/LinearLayout01" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:orientation="vertical"> 
    <ScrollView android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_gravity="center_vertical" 
     android:scrollbars="vertical"> 
     <RelativeLayout android:id="@+id/editFielsdLayout" 
      android:layout_height="fill_parent" android:layout_width="fill_parent" 
      android:clickable="true"> 
      <view 
       class="com.woodshy.glucoXpert.DPass.DPassValuesEditActivity$DPassValuesEditField" 
       android:id="@+id/edtWeight" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:width="75px" 
       android:maxLines="1" android:layout_below="@+id/TextView01" 
       android:lines="1" android:gravity="center" android:imeOptions="flagNoExtractUi" 
       android:inputType="numberDecimal" android:maxLength="3" 
       app:dbFieldName="Weight"></view> 

     </RelativeLayout> 


    </ScrollView> 
</LinearLayout> 

aber ich kann es nicht im visuellen Editor (Eclipse SDK, Version: 3.6.1) sehen, während es in der Anwendung in der Laufzeit erscheint und gut funktioniert.

Mache ich etwas falsch? Wie kann ich meine benutzerdefinierte Ansicht im visuellen Editor sichtbar machen?

danke.

Antwort

-1

Wie kann ich meine benutzerdefinierte Ansicht im visuellen Editor sichtbar machen?

Sie können nicht.

+3

Cristian, haben Sie irgendwelche Links in Bezug auf Ihre Aussage? AFAIK, wenn benutzerdefinierte Ansicht als normale Klasse (nicht innere) deklariert werden, können wir es im sichtbaren Editor verwenden. Und es ist sichtbar. – woodshy

0

Hatte das gleiche Problem. Sieht aus wie es (Plugin) muss etwas neu laden, bevor benutzerdefinierte Ansichten angezeigt werden können. Versuchen Sie, die Zielplattform im grafischen Layout-Editor von aktuell auf eine andere zu wechseln (z. B. von 2.1 auf 2.3). Das hilft und auch nach dem Zurückschalten auf "aktuell" (im Beispiel 2.1) werden weiterhin benutzerdefinierte Ansichten angezeigt.

Manchmal war es auch erforderlich, Eclipse neu zu starten ...

Verwandte Themen