В основном я хочу преобразовать строковое слово в int как из xml, а теперь из необработанного файла. я могу сделать это с XML:Как преобразовать строку в int/Integer, если строка содержит слово?
final int[] colorArray = getResources().getIntArray(R.array.colors_int);
И у меня есть это в файле XML:
<integer-array name="colors_int">
<item>@color/red</item>
<item>@color/yellow</item>
<item>@color/blue</item>
</integer-array>
К этому я могу легко настроить цвета на моих объектах:
view.setBackgroundColor(colorArray[i]);
НО теперь у меня есть необработанный файл, который содержит имя цвета, разделяющее их пробелами: «синий красный желтый»
Как я могу прочитать их в массиве int array/Integer, чтобы я мог легко покрасить объекты? Я попытался это:
input_file_int.add(Integer.parseInt(line));
но не работал, потому что строки Isnt в междунар.
java.lang.NumberFormatException: Invalid int: "blue"
С строковым массивом, он отлично работает, но я не могу использовать строки для цветных объектов.
Как я могу это сделать?
EDIT:
У меня есть этот пример необработанный файл:
black
gray
silver
maroon
red
olive
Мой colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--16 basic color -->
<color name="black">#000000</color>
<color name="gray">#808080</color>
<color name="silver">#C0C0C0</color>
<color name="white">#FFFFFF</color>
<color name="maroon">#800000</color>
</resources>
И вот как я инициализирован Integer ArrayList:
ArrayList<Integer> input_file_int= new ArrayList<Integer>();
String.valueOf (integer)? – Jake
@Jake 'String.valueOf (int)' * преобразует int в строку *, если вы хотите преобразовать String в int, используйте 'Integer.parseInt (string)' – Apurva