我创建了一个自定义布局,其中包含一个TextView和一个扩展LinearLayout的Spinner(称为LabeledSpinner)。 我把几个LabeledSpinners放到我的主RelativeLayout中,显然我想为每个textview设置不同的文本,但我不知道如何在xml文件中做到这一点。
我需要以某种方式帮助访问内部视图的属性。 我试图使用[包名] .LabeledSpinner.label:文本但它不起作用
(标签是textview的id)
答案 0 :(得分:1)
使LabeledSpinner成为一个样式(res / values / attrs.xml)
<declare-styleable name="LabeledSpinner">
<attr name="text" format="string"/>
</declare-styleable>
在LabeledSpinner中
public LabeledSpinner(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LabeledSpinner);
String text = a.getString(R.styleable.LabeledSpinner_text);
a.recycle();
}
请注意,text
中的LabeledSpinner
属性将用作LabeledSpinner_text
。
现在在您的布局中
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourpackage="http://schemas.android.com/apk/res/com.package">
<com.package.LabeledSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
yourpackage:text="This is where your text goes"/>
</LinearLayout>
应该这样做!