我是Spinner
类的子类,我需要通过android:entries
获取xml文件中指定的对象。我怎么能这样做?
<com.myapp.MySpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/myarray"/>
所以我需要entries
参数中指定的数组或者resourceid,所以我可以自己获取它们。
答案 0 :(得分:1)
您需要覆盖Spinner
的构造函数并从AttributeSet
参数中检索条目。
public class MySpinner extends Spinner {
public MySpinner(Context context, AttributeSet attrs) {
super(context, attrs);
if (attrs != null) {
final int[] ids = {android.R.attr.entries};
final TypedArray array = context.obtainStyledAttributes(attrs, ids);
final int entriesId = array.getResourceId(0, 0);
if (entriesId > 0) {
final Resources resources = context.getResources();
final String[] entries = resources.getStringArray(entriesId);
if (entries != null) {
// do whatever you want here
}
}
}
}
}