Android getString()返回错误的字符串

时间:2016-07-14 16:36:15

标签: android android-resources

我面临的问题是getString()不返回id的字符串而是另一个字符串。但首先是我的代码:

public public class ShopFragment extends Fragment {
    ...
    public class ShopManager(){
        ...
        private TableRow[] getRowsFromItems(){
        ...
        TextView headlineName = new TextView(getContext());
        headlineName.setText(getString(R.string.shop_headline_name));
        TextView headlinePrice = new TextView(getContext());
        headlinePrice.setText(getString(R.string.shop_headline_price));
        ...
        }
    }
}

的strings.xml:

<resources>
    ...
    <string name="show_leaderboards">Leaderboards</string>
    <string name="show_achievements">Achievements</string>
    ...
    <string name="shop_headline_name">Article</string>
    <string name="shop_headline_price">Price</string>
    ...
</resources>

问题是,getString(R.string.shop_headline_name)返回&#34;成就&#34;和getString(R.string.shop_headline_price)返回&#34;排行榜&#34;。我不知道如何解决这个问题,我很困惑为什么会这样。我究竟做错了什么? 谢谢你的回答

2 个答案:

答案 0 :(得分:6)

清洁和构建应该做的伎俩。您的R.java包含所有ID,但未正确生成。干净的构建将正确生成它。

答案 1 :(得分:1)

要使用Resource文件夹中的字符串(此处为strings.xml),请使用以下代码:

headlineName.setText(getResources().getString(R.string.shop_headline_name));

这应该有用。