Android资产到原始

时间:2012-12-04 19:08:06

标签: java android

我正在尝试本地化我的应用,以便它显示西班牙语和英语。我有大多数本地化计算出来有一个例外。我有一个.xml文件,列出了我想要移动到res / raw文件夹的应用程序的问题,以便我可以添加区域设置并让应用程序翻译。

在大多数情况下,这很简单,因为我已经能够使用/ res来调用大多数字符串(getResources()。getString(R.string。“”)但是我很难为此调用目前的论点。

我的xml位于res / raw /“”。xml

我现在正在使用资产管理器来获取问题的.xml

 public static List<Question> readQuestions(AssetManager assetManager){

    ArrayList<Question> questionArrayList = new ArrayList<Question>();
    try{
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(assetManager.open("questions.xml"));
        doc.getDocumentElement().normalize();
        NodeList nodeLst = doc.getElementsByTagName("question");
        for(int s=0; s<nodeLst.getLength(); s++){

是否有人知道我可以调用raw文件夹来获取.xml?

EDIT :::

我正在尝试将代码用于输入流,但是在上下文中出现错误,表示无法解析符号'context'

 public static List<Question> readQuestions(AssetManager assetManager){

    ArrayList<Question> questionArrayList = new ArrayList<Question>();
    try{
        InputStream in = context.getResources().openRawResource(R.raw.questions);
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();

        Document doc = builder.parse(in);


        NodeList nodeLst = doc.getElementsByTagName("question");

1 个答案:

答案 0 :(得分:2)

获取res / raw / questions.xml的InputStream

InputStream in = context.getResources().openRawResource(R.raw.questions);

这个答案假设您有一个上下文。如果您不熟悉在Android中获取和使用Context,我强烈建议您花时间去理解它。否则你不会在Android编程方面走得太远。

StackOverflow上有很多答案已经在讨论上下文。这是一个What is 'Context' on Android?