Android 将活动类拆分为多个文件

Android 将活动类拆分为多个文件,android,Android,这是主要的活动 我正在尝试将类移动到一个新文件中 一旦我这样做了,我就无法成功地调用该类 下面的代码生成一个空指针,尽管指针不是空的 我不能简单地将savedTrainInfo类更改为static,因为 那么文件例程将无法工作。必须有一个简单的解决办法 为了清晰起见,我需要把我的课程分开 新文件 这里有很多功能;主要是文件I/O 如果在主要活动列车中有,这些都可以正常工作 你说得对。如果readStartupFiletrainAttributes==false,则错误似乎在中 两件事:空指针异常

这是主要的活动 我正在尝试将类移动到一个新文件中 一旦我这样做了,我就无法成功地调用该类 下面的代码生成一个空指针,尽管指针不是空的 我不能简单地将savedTrainInfo类更改为static,因为 那么文件例程将无法工作。必须有一个简单的解决办法 为了清晰起见,我需要把我的课程分开

新文件 这里有很多功能;主要是文件I/O 如果在主要活动列车中有,这些都可以正常工作 你说得对。如果readStartupFiletrainAttributes==false,则错误似乎在中


两件事:空指针异常在哪里?而且,我认为我们需要看到这里的许多函数,因为您可能引用了一些有效的东西,例如,在活动上下文中使用它作为上下文,但在重构该类时不使用它;被称为。许多函数都是从getTrainAttributes调用的,而getTrainAttributes从未执行过。空指针异常首先发生。同样,当添加到主活动序列时,这些例程都能正确执行;在readStartupFileString对象[]中。我逐步调试到这一点。解决了。感谢你指出其他地方是个例外。解决方案:InputStream fHandle=trains.context.openFileInputstartupTrains.txt@马蒂,把你的答案写下来,并记为已解决。否则它只是挂在“未回答的问题”中。两件事:空指针异常在哪里?而且,我认为我们需要看到这里的许多函数,因为您可能引用了一些有效的东西,例如,在活动上下文中使用它作为上下文,但在重构该类时不使用它;被称为。许多函数都是从getTrainAttributes调用的,而getTrainAttributes从未执行过。空指针异常首先发生。同样,当添加到主活动序列时,这些例程都能正确执行;在readStartupFileString对象[]中。我逐步调试到这一点。解决了。感谢你指出其他地方是个例外。解决方案:InputStream fHandle=trains.context.openFileInputstartupTrains.txt@马蒂,把你的答案写下来,并记为已解决。否则,它只是挂在那里的“未回答的问题”。
import mp.trains.conductor.savedTrainInfo;
public class trains extends Activity 
  {
  private savedTrainInfo msavedTrainInfo;
  protected static Context context;

  public void onCreate(Bundle savedInstanceState) 
    {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    trains.context=getApplicationContext();  
    msavedTrainInfo=new savedTrainInfo();
    msavedTrainInfo.getTrainAttributes();
    }
  }
public class savedTrainInfo extends trains
  {
  public void getTrainAttributes()
    {
    trainAttributes=new String [10];
if (readStartupFile(trainAttributes)==false)
  {
  fileLine=0;
  }
else
  {
  try 
    {
    fileLine = Integer.parseInt(trainAttributes[0].toString());
    } 
  catch(NumberFormatException nfe) 
    {
    System.out.println("Could not parse " + nfe);
    } 
  }
    }

  public  boolean readStartupFile(String objects[])
    {
    try 
    {
// InputStream fHandle = openFileInput("startupTrains.txt");
InputStream fHandle = trains.context.openFileInput("startupTrains.txt");
if (fHandle != null) 
  {
  // prepare the file for reading
  InputStreamReader inputreader = new InputStreamReader(fHandle);
  BufferedReader buffreader = new BufferedReader(inputreader);
  String line;
  line = buffreader.readLine();
  if (line == null)
    {
    fHandle.close();
    return false;
    }
  else
    {
    String[] item = (line).split(",");                  
    objects[0]=item[0].toString();                      
    fHandle.close();
    }
  return true;
  }
else
  {
  return false;
  }
}
catch (FileNotFoundException e2) 
  {
  return false;
  } 
catch (IOException e) 
{
e.printStackTrace();
return false;
}
}

  }