簡體   English   中英

我如何在java類數組中顯示strings.xml中的字符串

[英]How can i show Strings from strings.xml in java class array

我想在我的 items.java 中顯示來自 strings.xml 的字符串。 如果我將它聲明為字符串,我會遇到錯誤,如果我將其聲明為 int,我只能看到一些數字,但看不到我的字符串。 也許有人可以幫助我?

這是我的文件

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;
}

}

字符串.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>

在 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)
context.getResources().getString(yourIntegerId)

您需要將上下文傳遞給您的函數,並且當您從 xml 調用字符串時 - 調用此函數。

就像是 :

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

您必須將“上下文”引用傳遞給類並使用

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

在 Activity 和 Fragment 中,您可以直接使用

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 類中像這樣得到它

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

你可以試試這個

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);),

您正在 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM