这是方法
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错误。 为什么?????谁都知道android的规则?
答案 0 :(得分:0)
我认为问题出在这一行:
punchit.setImageResource(R.drawable.punchboxcancelled);
因为在这个类中,你没有像在前面的类中那样设置相同的xml(在onCreate()的setContentView()方法中)。所以这个观点在这里找不到。
答案 1 :(得分:0)
将Context作为参数传递给函数并使用context.openFileInput(fileName)
。同样适用于openFileOutput(fileName)
。
我希望它会有所帮助。
答案 2 :(得分:0)
最好使用以下代替“FileInputStream fis = openFileInput(filename);在PunchActivities中”,
试试这个
FileInputStream fis =new FileInputStream(filename);
答案 3 :(得分:0)
我发现我需要将路径传递给文件。