-3

私は2つのクラス/アクティビティを持っています:

ファーストクラス:

public class FirstClass extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }
  public void addData(String filename, String data); {
    SecondClass second = new SecondClass();
    second.save(name, data);
  }
}

セカンドクラス:

public class SecondClass extends Activity {
  public void save(String filename, String data) {
    try {
      FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE);
      fos.write(data.getBytes());
      fos.close();
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

ご覧のとおり、私がやりたいことは in からメソッドを呼び出すことSecondClassですFirstClass。このメソッドは、一部のデータを内部ストレージに保存します。

これを行う正しい方法は何ですか?おそらく で何かをしなければならContextないことはわかっていますが、正確にはわかりません。

4

3 に答える 3

0

単純な Java クラスとして作成します。

public class ThirdClass
{
    public void save(String filename, String data, Context context)
    {
        try {
            FileOutputStream fos = context.openFileOutput(filename,Context.MODE_PRIVATE);
            fos.write(data.getBytes());
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

最初のアクティビティと同様に、このメソッドを呼び出します。

ThirdClass third= new ThirdClass();
third.save(name, data,this);

代替手段 Third クラスを作成せず、SecondClass で行いたい場合。次に、この保存メソッドを静的にします。

public class SecondClass extends Activity
{
    //Oncreate method....

    public static void save(String filename, String data)
    {
        try {
            FileOutputStream fos = openFileOutput(filename,Context.MODE_PRIVATE);
            fos.write(data.getBytes());
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

最初のアクティビティからこのメソッドを呼び出します。

SecondClass.save(name, data);
于 2013-04-21T15:47:08.830 に答える
0

静的メソッドを作成saveするか、それを独自の静的クラス (アクティビティではない) に移動します。

したがって、次を使用して呼び出すことができます。

SecondClass.save(name, data);

次のように定義します。

public static void save(String filename, String data)
{
于 2013-04-21T15:48:27.700 に答える