如何在java类数组中的strings.xml中显示字符串

时间:2017-10-16 11:03:24

标签: java android string

我想在items.java中显示strings.xml中的字符串。如果我将它声明为String我会遇到错误,如果我将其声明为int,我只看到一些数字而不是我的String。也许有人可以帮助我?

这是我的文件

item.java文件

public class Item {

private static final String LARGE_BASE_URL = "http://storage.googleapis.com/androiddevelopers/sample_data/activity_transition/large/";
private static final String THUMB_BASE_URL = "http://storage.googleapis.com/androiddevelopers/sample_data/activity_transition/thumbs/";


public static Item[] ITEMS = new Item[] {
        new Item(0,
                "Über die App",
                "",
                R.drawable.appicon,
                R.drawable.appicon,
                "Meerforellen Guide - Ostsee",
                R.string.about
        ),
        new Item(10,
                "Die Leidenschaft",
                "",
                R.drawable.imgp1262,
                R.drawable.imgp1262,
                "Ein Einblick in den Alltag",
                R.string.leidenschaft
        ),
        new Item(15,
                "Die Technik",
                "",
                R.drawable.imgp0817,
                R.drawable.imgp0817,
                "Spinn und Fliegenfischen",
                R.string.lorem
        ),
        new Item(17,
                "Rechtliche Bestimmungen",
                "",
                R.drawable.imgp0831,
                R.drawable.imgp0831,
                "Dies gibt es zu beachten",
                R.string.lorem
        ),
        new Item(18,
                "Ferienwohnungen/Häuser",
                "",
                R.drawable.imgp0819,
                R.drawable.imgp0819,
                "Unterkünfte - dicht am Fisch",
                R.string.lorem
        ),
        new Item(20,
                "Übersicht der Spots",
                "",
                R.drawable.mapindex,
                R.drawable.mapindex,
                "Von Nord nach Süd",
                R.string.spots
        ),

        new Item(30,
                "01 - Habernis",
                "Na de Huk\n24972 Steinburg\n",
                R.drawable.pic,
                R.drawable.r_habernis,
                "Geo: 54.793909, 9.793722",
                R.string.lorem
        ),

        new Item(40,
                "02 - Falshöft",
                "Sibbeskjär\n24395 Pommerby\n",
                R.drawable.pic,
                R.drawable.r_falshoeft,
                "Geo: 54.76851, 9.96507",
                R.string.lorem
        ),
        new Item(50,
                "04 - Hasselberg",
                "Drecht\n24376 Hasselberg\n",
                R.drawable.pic,
                R.drawable.r_hasselberg,
                "Geo: 54.7201, 9.98752",
                R.string.lorem
        ),
        new Item(60,
                "05 Schönhagen",
                "Nordhagener Straße\n24398 Brodersby\n",
                R.drawable.pic,
                R.drawable.r_schoenhagen,
                "Geo: 54.63184, 10.03242",
                R.string.lorem
        ),
        new Item(70,
                "06 Waabs / Langholz",
                "Ostseestraße\n24369 Waabs\n",
                R.drawable.pic,
                R.drawable.r_waabs,
                "Geo: 54.51607, 9.98766",
                R.string.lorem
        ),
        new Item(80,
                "07 Noer",
                "Zum Hegenwohld 35\n24214 Noer\n",
                R.drawable.pic,
                R.drawable.r_noer,
                "Geo: 54.46922, 10.00011",
                R.string.lorem
        ),
        new Item(90,
                "08 Surendorf",
                "Zum Kurstrand\n24229 Schwedeneck\n",
                R.drawable.pic,
                R.drawable.r_surendorf,
                "Geo: 54.47992, 10.07472",
                R.string.lorem
        ),
        new Item(100,
                "09 Bülk",
                "Bülker Weg\n24229 Strande\n",
                R.drawable.pic,
                R.drawable.r_buelk,
                "Geo: 54.45571, 10.19875",
                R.string.lorem
        ),
        new Item(110,
                "10 Brasilien",
                "Deichweg 2\n24217 Schönberg\n",
                R.drawable.pic,
                R.drawable.r_brasilien,
                "Geo: 54.42693, 10.38323",
                R.string.lorem
        ),
        new Item(120,
                "11 Hohenfelde",
                "Malmsteg\n24257 Hohenfelde\n",
                R.drawable.pic,
                R.drawable.r_hohenfelde,
                "Geo: 54.38568, 10.50348",
                R.string.lorem
        ),
        new Item(130,
                "12 Behrensdorf",
                "Strandstraße\n24321 Behrensdorf\n",
                R.drawable.pic,
                R.drawable.r_behrensdorf,
                "Geo: 54.3602, 10.608",
                R.string.lorem
        ),
        new Item(140,
                "13 Lippe",
                "Lippe 3\n24321 Behrensdorf\n",
                R.drawable.pic,
                R.drawable.r_lippe,
                "Geo: 54.33767, 10.64692",
                R.string.lorem
        ),
        new Item(150,
                "14 Hohwacht",
                "Dünenweg 6\n24321 Hohwacht\n",
                R.drawable.pic,
                R.drawable.r_hohwacht,
                "Geo: 54.32274, 10.67195",
                R.string.lorem
        ),

};

public static Item getItem(int id) {
    for (Item item : ITEMS) {
        if (item.getId() == id) {
            return item;
        }
    }
    return null;
}
private final int mid;
private final String mName;
private final String mAuthor;
private final int mFileName;
private final int mFileName2;
private final String mGeo;
private final int mBeitrag;



Item(int id, String name, String author, int fileName, int fileName2, String geo, int beitrag) {
    mid = id;
    mName = name;
    mAuthor = author;
    mFileName = fileName;
    mFileName2 = fileName2;
    mGeo = geo;
    mBeitrag = beitrag;

}

public int getId() {
    return mid;
}
public String getGeo() {
    return mGeo;
}

public String getAuthor() {
    return mAuthor;
}

public String getName() {
    return mName;
}
public int getBeitrag() { return mBeitrag; }
public int getPhotoUrl() {
    return mFileName2;
}

public int getThumbnailUrl() {
    return mFileName;
}

}

的strings.xml

<string name="bericht">%1$s %2$s</string>
<string name="bericht2">%1$s</string>
<string name="image_header">%1$s</string>
<string name="lorem">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</string>
<string name="about">Version 1.6 http://www.mefoguide-app.de http://www.facebook.de Kontakt: info@mefoguide-app.de Quellen:     SplashScreen-Bild: Andre Pricken     Leidenschaft-Bild: Jochen Feuerschütz     Technik-Bild: Jochen Feuerschütz     Rechtliche Bestimmungen Bild: Jochen Feuerschütz     Ferienwohnungen/Häuser Bild: Jochen Feuerschütz     www.wikipedia.de www.google.de und natürlich hauptsächlich: persönliche Erfahrung</string>
<string name="leidenschaft">Dieses Bild von Jochen Feuerschütz erklärt eigentlich schon vieles...Der Fisch der 1000 Würfe...Irgendwann hört jeder Angler diesen Spruch und denkt sich  1000 Würfe? Herausforderung angenommen!.Schon bald wird er in der Brandung stehen und werfen und werfen und werfen. Einige brauchen keine 1000 Würfe, andere 3000. Dieser Ratgeber soll Dir dabei Helfen, einer von denen zu sein der keine 1000 Würfe braucht. Mit jedem Update gibt es neue Hotspots. Desweiteren wird auch etwas Theroie zur Biologie folgen. Alleine gute Spots zu kennen ergibt keine Fanggarantie. Mann muss die Lebensgewohnheiten kennen und kann dann viel besser abschätzen, wann es sich nicht lohnt loszuziehen, bzw. welche Strände am vielversprechesten bei aktueller Wetterlage sind.</string>
<string name="spots">01 - Habernis 02 - Falshöft 03 - Kronsgaard 04 - Hasselberg 05 - Schönhagen 06 - Waabs / Langholz 07 - Noer 08 - Surendorf 09 - Bülk 10 - Brasilien 11 - Hohenfelde 12 - Behrensdorf 13 - Lippe 14 - Hohwacht</string>

6 个答案:

答案 0 :(得分:3)

在strings.xml中,您可以将字符串实现为数组,如下所示:

<string-array name="myArray">
    <item>Some text 1</item>
    <item>Some text 2</item>
    <item>Some text 3</item>
    <item>Some text 4</item>
    <item>Some text 5</item>
</string-array>

然后,你可以这样得到它们:

getResources().getStringArray(R.array.myArray)

答案 1 :(得分:0)

context.getResources().getString(yourIntegerId)

你需要将上下文传递给你的函数,当你从xml调用字符串时 - 调用这个函数。

类似的东西:

public String getFilename1(Context context) {
    return context.getResurces().getString(filename1);
}

答案 2 :(得分:0)

您必须传递对该类的“Context”引用并使用

String your_string = context_reference.getString(R.string.<your_string_id>);

答案 3 :(得分:0)

在活动和片段中,您可以直接使用

getString(R.string.your_string_id)

因为此方法已经默认定义了getResources()标记

 /**
     * Return a localized string from the application's package's
     * default string table.
     *
     * @param resId Resource id for the string
     */
    public final String getString(@StringRes int resId) {
        return getResources().getString(resId);
    }

如果要使用Array,则在String XML中定义数组

<string-array name="image_extensions">
        <item>application/jpeg</item>
        <item>application/jpg</item>
        <item>application/bmp</item>
        <item>application/png</item>
        <item>application/gif</item>
    </string-array>

并在Java Class中得到它

String[] imagemimetypes = getResources().getStringArray(R.array.image_extensions);

答案 4 :(得分:0)

你可以试试这个

new Item(150,"14 Hohwacht","Dünenweg 6\n24321 Hohwacht\n",R.drawable.pic,R.drawable.r_hohwacht,"Geo: 54.32274, 10.67195",getResources().getString(R.string.about);),

答案 5 :(得分:0)

您正在strings.xml中定义字符串。 而你想要字符串数组。为了达到这个目的,你需要这样做。

<string-array name="system">
<item>@string/earth</item>
<item>@string/moon</item>
</string-array>

这样您就可以轻松访问该阵列。

    String[] some_array = getResources().getStringArray(R.array.your_string_array)