想在程式裡建立一個EditText, 並設定cursorDrawable, 但我們new EditText所取得的instance裡並沒有對應可以set CursorDrawable的method, 而只在xml可以設定android:textCursorDrawable屬性, 這時我們就可以用這種解決方法.
AttributeSet
editTextAttributeSet = null;
int res =
context.getResources().getIdentifier("cust_edittext", "layout",
context.getPackageName());
XmlPullParser parser
= context.getResources().getXml(res);
int state=0;
do {
state = parser.next();
if (state ==
XmlPullParser.START_TAG) {
if
(parser.getName().equals("EditText")) {
editTextAttributeSet = Xml.asAttributeSet(parser);
break;
}
}
} while(state !=
XmlPullParser.END_DOCUMENT);
然後要使用時只要代入AttributeSet就可以了
EditText edittext = new
EditText(context, editTextAttributeSet);
上面紅字部分有個cust_edittext其實就是一個EditText的xml, 例如在layout/cust_edittext.xml
這樣我們就可以設定CursorDrawable了
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textCursorDrawable="@null"
android:textColor="#ff000000">
</EditText>
沒有留言 :
張貼留言