1

我想知道在 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 的资源,将这些资源传递给它应该可以工作。

4

2 回答 2

2

它适用于任何地方,甚至在活动之外。

可能是以下行

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

导致问题..因为你使用这个(当前实例是一个活动)..

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

InputStream ish =     context.getResources().openRawResource(R.drawable.regular_hero_deck);
于 2012-10-17T03:58:05.483 回答
0

改变这一行..

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

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

例如 YourActivityname 就像 mainActivity

于 2012-10-17T04:32:45.527 回答