输入回收者视图时,如何避免活动中的硬编码字符串?

时间:2019-06-18 04:32:26

标签: java android string android-recyclerview

我正在使用recycler view,并且在回收器视图中插入String类型的文本时,我正在使用所有的硬编码字符串,我认为在将其翻译成其他语言时可能会出现问题。 / p>

我试图删除字符串。例如,我删除了“关于我们” ,并保留了R.string.about_us。但是,它显示了错误。

 wordList.add(new Word(R.drawable.ic_launcher_background, R.string.about_us));
 wordList.add(new Word(R.drawable.ic_launcher_background, "Our Facebook Page"));
 wordList.add(new Word(R.drawable.ic_launcher_background, "About Us"));

6 个答案:

答案 0 :(得分:2)

由于需要string.xml,因此无法直接从getResource()访问字符串。这是例子

getResources().getString(R.string.about_us);

您的代码应类似于

wordList.add(new Word(R.drawable.ic_launcher_background, getActivity().getResources().getString(R.string.about_us)));
wordList.add(new Word(R.drawable.ic_launcher_background, "Our Facebook Page"));
wordList.add(new Word(R.drawable.ic_launcher_background, "About Us"));

答案 1 :(得分:1)

这行得通!

wordList.add(new Word(R.drawable.ic_launcher_background, getString(R.string.about_us)));
wordList.add(new Word(R.drawable.ic_launcher_background, getString(R.string.meme_bazar)));

答案 2 :(得分:0)

您还没有说出自己遇到的错误,但是需要通过调用getString来获取字符串,如下所示:

wordList.add(new Word(R.drawable.ic_launcher_background, context.getString(R.string.about_us)));

wordList.add(new Word(R.drawable.ic_launcher_background, "Our Facebook Page"));

答案 3 :(得分:0)

您需要更频繁地使用“值”对话框,在您的情况下,请使用String字段。您可以在此处同时输入ID和值的“新资源”。然后安装可帮助您进行翻译的ui。

答案 4 :(得分:0)

用于活动用途,

wordList.add(new Word(getResources().getDrawable(R.drawable.ic_launcher_background), getResource().getString(R.string.about_us)));

对于片段或适配器使用,

wordList.add(new Word(context.getResources().getDrawable(R.drawable.ic_launcher_background), context.getResource().getString(R.string.about_us)));

答案 5 :(得分:0)

您需要像下面那样修改代码:

    wordList.add(new Word(R.drawable.ic_launcher_background, 
    getActivity().getString(R.string.about_us));

    wordList.add(new Word(R.drawable.ic_launcher_background, 
    getActivity().getString(R.string.our_facebook_page));   
    //our_facebook_page = "Our Facebook Page"

    wordList.add(new Word(R.drawable.ic_launcher_background, 
    getActivity().getString(R.string.about_us));   
    //about_us ="About Us"

您还应该像支票:

getActivity() != null 

在执行上述代码之前,以防止发生著名的 NullPointerException。