在onCreate()之外读取android中的文件

时间:2012-10-17 03:51:38

标签: android

我想知道在android中读取文件只能在活动的onCreate()下工作吗? 我有这个问题是因为我的阅读过程在读取过程位于onCreate()旁边或者在onCreate下调用的方法中有效。

以下是我用于阅读文件的内容

try {
            file="";
            InputStream ish =     this.getResources().openRawResource(R.drawable.regular_hero_deck);
            BufferedReader brh = new BufferedReader(new     InputStreamReader(ish));
            if(ish!=null){
                while ((data = brh.readLine()) != null)   {
                    file+=data;
                }
            }
            ish.close();
            regularDeckHero =new Deck<Hero>("heroDeck",file);
        }catch (Exception e){//Catch exception if any
            System.err.println("Error : reading hero deck");}   

解决方案:这是

的问题
InputStream ish =     this.getResources().openRawResource(R.drawable.regular_hero_deck);

this.getResources()没有给出我想要的东西,你需要的资源是你的MainActivty传递的资源,这个资源应该可行。

2 个答案:

答案 0 :(得分:2)

它适用于每个地方,甚至在活动之外..

可能是以下行

InputStream ish =     this.getResources().openRawResource(R.drawable.regular_hero_deck);

导致问题..因为你使用它(当前实例是一个Activity)..

通过获取应用程序上下文引用,您仍然可以说

InputStream ish =     context.getResources().openRawResource(R.drawable.regular_hero_deck);

答案 1 :(得分:0)

更改此行..

InputStream ish =     this.getResources().openRawResource(R.drawable.regular_hero_deck); 

InputStream ish =     YourActivityname.this.getResources().openRawResource(R.drawable.regular_hero_deck);

e.g。 YourActivityname类似于mainActivity