2012-08-31 26 views
6

Ich habe eine Edittext in meiner Anwendung, die den Cursor korrekt in Froyo oder Lebkuchen, aber in späteren SDKS der Cursor ist unsichtbar. Ich habe online gefunden, dass die Lösung ist, setzen Sie die Android: textCursorDrawable = "@ null", so dass der Editiertext die Schriftfarbe für den Cursor verwenden wird. Da meine minsdkversion jedoch 8 ist, habe ich keinen Zugriff auf diese Eigenschaft.Android Edittext Cursor unsichtbar

Ist es eine Möglichkeit, selektiv eine Eigenschaft basierend auf dem SDK hinzuzufügen, auf dem Sie sich befinden? Oder möglicherweise eine Möglichkeit, dies zu umgehen, so dass ich sichtbare Cursor auf älteren und neueren SDK-Versionen haben kann?

+1

Können Sie nicht verschiedene Layout-Ordner für die Versionen über 'Lebkuchen' verwenden, wo Sie diese Eigenschaft festlegen? – Luksprog

+0

@Luksprog das ist wahrscheinlich der einfachste Weg von dem, was ich sehen kann. –

+0

@Luksprog Würde es Ihnen etwas ausmachen, ein Beispiel zu geben? – Michaeldcooney

Antwort

3

Ich weiß nicht Ihre aktuelle Einrichtung, aber eine Möglichkeit, diese Eigenschaft zu verwenden, ist die Verwendung unterschiedlicher Layout-Ordner auf der Grundlage verschiedener Android-Versionen. android:textCursorDrawable ist eine Eigenschaft, die in API 12 eingeführt wurde, sodass Sie einen Layoutordner wie layout-v12 haben könnten, der verwendet wird, wenn die API 12 oder höher ist. In den Layouts aus diesem Ordner ist die Verwendung der Eigenschaft gültig. Für niedrigere Versionen, Froyo und Gingerbread, haben Sie keine Probleme, also würden Sie einen Standardordner verwenden, layout. Am Ende werden Sie zwei Layouts Ordner (die gleichen Layout-Dateien enthalten):

layout // don't need the property 
layout-v12 // use the property 

Das API 11 auslässt, ich weiß nicht, ob dies ein Deal Breaker für Sie.

+0

Danke, das ist was ich brauchte! – Michaeldcooney

+0

Dies funktioniert nicht, weil Eclipse immer noch über das Layout-14-Layout mit einem ungültigen Attribut für die minsdk-Version beschweren wird. –

+0

@timT Ich bekomme diesen Fehler nicht. Stellen Sie sicher, dass Sie die neuesten Updates haben. – Luksprog

0

Versuchen Sie targetSdkVersion auf API-Ebene 13 oder höher einstellen Zugriff auf den Android zu gewinnen: textCursorDrawable Eigenschaft

+0

Meine targetSdkVersion ist 16 – Michaeldcooney

0

Wenn Sie ein Cursor nicht hat denke ich die Eingabe einfach und sagen Sie nur neue Zeichen am Ende eingeben der Text?

Ich denke, Sie können eine TextView verwenden und zu dieser fügen Sie eigene KeyListener? Aber in diesem Fall werden Sie hat Probleme mit der virtuellen Tastatur nicht zeigen wird, einige dieser Links:

Forcing the Soft Keyboard open

android force keyboard visible

oder Sie eigene Tastatur erstellen, wenn die rang gültiger Schlüssel ist sehr Begrenzung als nur Ziffern.