Как получить значение из строки. xml для arraylist - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть следующий код:

package com.sample.app;

import android.content.res.Resources;

import java.util.ArrayList;




public class Content {

    public static ArrayList<String> Names;
    public static ArrayList<String> NamesSub;
    public static ArrayList<String> Images;
    public static ArrayList<String> Wallpaper;
    public static ArrayList<String> Audio;
    public static ArrayList<String> BIG_Images;
    public static ArrayList<String> Sub_heading;
    public static ArrayList<String> Description;


    Content(){
        this.Names = new ArrayList<String>();
        this.NamesSub = new ArrayList<String>();
        this.Sub_heading = new ArrayList<String>();
        this.Images = new ArrayList<String>();
        this.Wallpaper = new ArrayList<String>();
        this.BIG_Images = new ArrayList<String>();
        this.Audio = new ArrayList<String>();
        this.Description = new ArrayList<String>();

        this.Description.add(0, "Long description");
        this.Description.add(1, "");
        this.Description.add(2, "");

    }

}

И у меня слишком длинное описание для ArrayList. когда я вставляю описание, оно дает мне

ошибка: слишком длинная константа

ошибка. После этого я попытался установить значения от strings.xml. Я использую этот код для получения значений:

this.Description.add(0,String.valueOf(R.string.descvalue));

Но когда я запускаю приложение, оно печатает числа, подобные этому 2131689519, а не мои значения.

После этого я попытался string-array

<string-array name="descvalue">
    <item>too long value</item>
</string-array>

И в файле java я пытался получить значения с помощью этого кода:

this.Description.add(0, getResources().getStringArray(R.array.descvalue)[0]);

Но когда я запускаю приложение, оно падает.

Так что я должен делать в этом случае? Спасибо.

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Заменить

this.Description.add(0,String.valueOf(R.string.descvalue));

на

this.Description.add(0,getString(R.string.descvalue));

, но getString() требуется context.

1 голос
/ 16 февраля 2020

«ошибка: слишком длинная константа»

для этого вы можете go с классом Text

Text text = new Text("foo");
String s = text.getText(); 
text.setText(s); 

...