我想从值resource
文件中获取名称。
例如
values.xml
<string name="ind_ginger">Ginger</string>
<string name="ind_garlic">Garlic</string>
我正在使用它们作为
这样的复选框<CheckBox
android:id="@+id/c01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="21dp"
android:text="@string/ind_garlic"
android:layout_alignTop="@+id/c02"
android:layout_alignRight="@+id/saveChanges"
android:layout_alignEnd="@+id/saveChanges" />
<CheckBox
android:id="@+id/c02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="81dp"
android:layout_marginStart="81dp"
android:checked="false"
android:text="@string/ind_ginger"
android:visibility="visible"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="40dp" />
在应用程序中,我需要访问String
名称(请注意值)
for (CheckBox item : checkBoxList){
if(item.isChecked())
{
//String text=item.getText().toString();String viewID = getResources().getResourceName(item.getId()); // gets me the name
String name = getResources().getResourceEntryName(item.getId());
String tName =
//item.getText().toString();
// String id = item.getTag().toString();
Toast.makeText(getApplicationContext(), tName,Toast.LENGTH_SHORT).show();
Log.d(viewID, TAG);
}
}
仅解析XML
吗?
答案 0 :(得分:0)
尝试
String ginger = getResources().getString(R.string.ind_ginger)
答案 1 :(得分:0)
您可以使用它来获取string.xml中的所有字符串键
Field[] fields = R.string.class.getFields();
String[] allStringNames = new String[fields.length];
for (int i =0; i < fields.length; i++) {
allStringNames[i] = fields[i].getName();
Log.e("String Key Name",""+allStringNames[i]);
}
希望这会有所帮助
答案 2 :(得分:0)
只需存储字符串项(如果将字符串文件存储在strings.xml而不是value.xml中,则更好)
strings.xml
<string name="ind_ginger">Ginger</string>
<string name="ind_garlic">Garlic</string>
答案 3 :(得分:0)
获得“ KEY”名称的最简单方法如下:
Log.e("KEY_NAME", getResources().getResourceEntryName(R.string.app_name));
在这里您将得到“ app_name”。
这也有助于支持多语言支持功能。
答案 4 :(得分:0)
首先,如果您需要Either[ExitWithErrorException, String]
,则需要从此更改代码
ind_ginger
到
<string name="ind_ginger">Ginger</string>
和
<string name="ind_ginger">ind_ginger</string>
获取String ginger = getResources().getString(R.string.ind_ginger)
。
但是我从您的代码中看到的是,您正在使用ind_ginger
,因为您需要创建一个String arraylist,该列表具有string.xml中的所有itemId,然后可以将它们与item.get(position)一起使用。
.getResourceEntryName(item.getId())
是项目在数组列表中的位置。