#android
#Android
Вопрос:
Добрый день, я постараюсь объяснить свою проблему как можно лучше. у меня в одном из моих классов есть геттеры и сеттеры для строкового объекта. Теперь в моем методе getString() я пытаюсь сравнить строку со строковым массивом элементов в моем String.xml чтобы проверить, соответствует ли какой-либо из элементов в файле string-array заданной строке, и вернуть соответствующий элемент item в string array.
У меня пока что есть что-то вроде этого:
для setPlace():
public void setPlace(String place) {
this.place = place;
}
для getPlace():
public String getPlace() {
//am stuck here and not sure how to compare this and return the correct item
if(place.equals(context.getResources().getStringArray(R.array.myPlacesArray))){
//return context.getResources().getString();
}
мой Strings.xml файл:
<string-array name="myPlacesArray">
<item>@string/myplace1</item>
<item>@string/myPlace2</item>
<item>@string/myPlace3</item>
</string-array>
<string name="myplace1">home</string>
<string name="myplace2">office</string>
<string name="myplace3">gym</string>
причина, по которой я должен это сделать, заключается в том, что он имеет разные значения для языков (языков), и это было бы намного проще, чем писать огромный список операторов if / else или switch для разных строковых элементов и языков. Пожалуйста, любые идеи высоко ценятся. Спасибо
Ответ №1:
Проверьте этот код на получение значения из String.xml и сравнить :
String[] categoriesAndDescriptions =getResources().getStringArray(R.array.myPlacesArray);
for(String cad : categoriesAndDescriptions) {
String categoryAndDesc = cad;
Log.v("CategoryName", categoryAndDesc);
if(place.equalsIgnoreCase(categoryAndDesc)){
//Do your Stuffs here
}
}
Ответ №2:
Вы должны просто перебирать возвращаемый массив, выполняя a place.equals
для каждого элемента в этом массиве, и возвращать совпадение, когда они совпадают.
Если они отсортированы (в данном случае их нет), вы могли бы использовать Arrays.binarySearch
. Вы также можете использовать Arrays.asList
и вызывать contains(place)
результирующий список, что по сути то же самое, что и цикл вручную.
Вам нужно будет решить, что возвращать, если совпадений нет (если это вообще возможно).