[英]Android get string name from resource file values.xml
我想從值resource
文件中獲取名稱。 例如
值.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
唯一的方法嗎?
試試
String ginger = getResources().getString(R.string.ind_ginger)
您可以使用它來獲取 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]);
}
希望這會有所幫助
只需將您的字符串項目存儲在(如果您將字符串文件存儲在 strings.xml 而不是 value.xml 中,則更好)
字符串.xml
<string name="ind_ginger">Ginger</string>
<string name="ind_garlic">Garlic</string>
獲取“KEY”名稱的最簡單方法如下:
Log.e("KEY_NAME", getResources().getResourceEntryName(R.string.app_name));
在這里你會得到“app_name”作為結果。
這也有助於支持多語言支持功能。
首先,如果您需要ind_ginger
則需要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
。 但是我可以從你的代碼中看到你正在使用.getResourceEntryName(item.getId())
因為你需要創建一個 String 數組列表,它包含來自 strings.xml 的所有 itemId,然后你可以將它們與 item.get 一起使用(位置)。
這里的position
是數組列表中項目的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.