我已經創建了一個自定義佈局類(擴展了RelativeLayout),並將TextView作爲佈局的一部分。在我的自定義視圖中閱讀Android屬性
我想將XML中聲明的屬性應用到我的TextView中,是否有我可以讀取android屬性(不是我的自定義屬性,該部分已被照顧)。
舉例來說,在我的XML我也會有這樣的:
<my.custom.MyLayout
android:layout_width="100dp"
android:layout_height="20dp"
android:text="SomeText" />
我想讀的文本屬性並將其應用到我的TextView(目前它被應用到RelativeLayout的),而不是創造我自己屬性並閱讀它。
我的自定義佈局是這樣的:
public class MyLayout extends RelativeLayout {
private TextView textView;
public void MyLayout(final Context context, final AttributeSet attrs) {
/**Read android attributes and apply it to TextView **/
??
}
我目前的解決方案是創建自定義屬性和閱讀他們,但我覺得這不是一個很好的解決方案,我會重複申報TextView的每個屬性。
有關我當前的解決方案的更多信息。
我有一個名爲myText的自定義屬性,我使用它將XML中聲明的文本應用於我的TextView。
在我的佈局XML:
myNameSpace:myText="SomeText"
在我的Java類閱讀:
String text= a.getString(R.styleable.MyStyleable_myText);
textView.setText(text);
我在尋找擺脫我的自定義屬性和讀 「機器人」 的屬性。
如果'MyLayout'是你的自定義組件,那麼你可以寫吸氣得到我想要讀取XML屬性的任何屬性或任何 – Apurva
,例如'機器人:文本=「SomeText」則會'作爲ATTRS的一部分傳遞給每個View的構造函數的值。我不能使用getters。 – AkasH