繁体   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