-4

这是方法

public String testFile(int numofpunches, String filename,  int picture, int cancelpix){
    String string="";
    Boolean a;
    FILENAME = filename;
    try {
        FileInputStream fis = openFileInput(filename);
        try{
            int counter = fis.read( mIds, 0,numofpunches);
            fis.close();
            int i=0;
            while( i <counter ){
                if(mIds[i] == 'c'){
                    mThumbIds[i++] = picture; //R.drawable.crab;
                    string=string.concat("c");

                }else{

                    mThumbIds[i] = cancelpix; 
                    string=string.concat("x");


                    ImageView punchit =  (ImageView) 
findViewById(mypunches[i++]);

punchit.setImageResource(R.drawable.punchboxcancelled);




                }
            }
            String testfordone = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
            a= string.equals(testfordone.substring(0,numofpunches));
            if(a){
                return "done";
            }
        }catch (IOException e){


        }
    }catch (FileNotFoundException e) {

        try {//initialize
            String FILENAME = filename;
            FileOutputStream fos =  openFileOutput(FILENAME, 
            Context.MODE_PRIVATE);
            string  = "cccccccccccccccccccccccccccccccccccccc";
            string.substring(0,numofpunches);

            try {
                fos.write(string.getBytes());
                fos.close();


                int counter = 0;
                while(counter < numofpunches ){

                    mThumbIds[counter++] =  picture; 

                }
            }catch(IOException err){

            }

        }catch(FileNotFoundException error){


        };

    }

我从该方法所在的同一个类 (A) 中调用它。现在我用同样的方法创建了一个新类(PunchActivities)。在 A 中导入类 PunchActivities 调用方法为

PunchActivities pa = new PunchActivities();
String result = pa.testFile(all the required parameters);

在运行时程序到达

FileInputStream fis = openFileInput(filename); in PunchActivities 

但随后它返回到 A 类并出现 NullPointer 错误。为什么?????有人知道安卓的规则吗??

4

4 回答 4

0

我认为问题出在这一行:

      punchit.setImageResource(R.drawable.punchboxcancelled);

因为在这个类中,您没有设置与早期类中相同的 xml(在 onCreate() 中的 setContentView() 方法中)。所以这个视图在这里找不到。

于 2012-07-12T05:06:12.220 回答
0

我发现我需要将路径传递给文件。

于 2012-09-18T20:57:23.817 回答
0

将 Context 作为函数中的参数传递并使用context.openFileInput(fileName). 对于openFileOutput(fileName).

我希望它会有所帮助。

于 2012-07-12T05:06:28.193 回答
0

最好使用以下内容而不是“FileInputStream fis = openFileInput(filename); in PunchActivities”

尝试这个

FileInputStream fis =new FileInputStream(filename);
于 2012-07-12T05:12:08.103 回答