Android反射获取com.android.internal.R.attr
时间: 2023-04-03 07:04:39 浏览: 84
可以使用以下代码获取com.android.internal.R.attr:
```
int attrId = getResources().getIdentifier("attr_name", "attr", "android");
```
其中,"attr_name"是要获取的属性名称,可以替换为具体的属性名。
相关问题
如何使用 android.R.attr. 引用属性
在 Android 中,我们可以使用 `android.R.attr` 来引用系统自带的属性。使用 `android.R.attr` 可以避免定义重复的属性,使得我们的代码更加简洁。
具体使用方法如下:
```
// 获取系统自带的 textColorPrimary 属性
int[] attrs = {android.R.attr.textColorPrimary};
TypedArray typedArray = context.obtainStyledAttributes(attrs);
int color = typedArray.getColor(0, Color.BLACK);
typedArray.recycle();
```
在上述代码中,我们使用 `android.R.attr.textColorPrimary` 引用了系统自带的属性,并通过 `context.obtainStyledAttributes()` 方法来获取该属性的值。
需要注意的是,使用 `android.R.attr` 引用属性时,需要将属性名前面的 `R.` 去掉。而且要记得在使用完 `TypedArray` 后调用 `recycle()` 方法以便及时回收内存。
如何使用 android.R.attr.listPreferredItemHeight
android.R.attr.listPreferredItemHeight是一个系统定义的属性,用于设置Android应用程序中ListView或Spinner等控件中列表项的高度。
在代码中使用该属性可以参考以下步骤:
1. 在XML布局文件中声明ListView或Spinner控件,设置android:layout_height属性,如下所示:
```xml
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight" />
```
2. 在Java代码中获取该属性的值,并将其设置为ListView或Spinner的高度,如下所示:
```java
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(android.R.attr.listPreferredItemHeight, typedValue, true);
int itemHeight = (int) typedValue.getDimension(getResources().getDisplayMetrics());
listView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, itemHeight*5));
```
以上代码将获取系统设置的列表项高度并将其设置为ListView的高度。其中,itemHeight*5表示将ListView的高度设置为列表项高度的5倍。