に定義された内部ストレージからデータを取得)し、SaveDataを()内部ストレージ内のデータをロードして保存するためのクラスのように:は、私はloaddataの(2つのサブクラスを定義したクラスのアンドロイド
public class LoadSaveInternalActivity extends Activity {
public String LoadData(String filename)
{ String read = "";
try {
FileInputStream fis = getBaseContext().openFileInput(filename);
if (fis != null) {
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
read = br.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return read;
}
public void SaveData(String data, String filename)
{
try {
FileOutputStream outputStream = getBaseContext().openFileOutput(filename, Context.MODE_PRIVATE);
String text = data;
outputStream.write(text.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}}
そして、私がしようとしています
public class Fragment1 extends Fragment {
EditText edittxt;
private final static String file_name = "myfile";
private LoadSaveInternalActivity InternalActivity;@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.frag1, container,false);
edittxt = (EditText) rootView.findViewById(R.id.editTxt);
InternalActivity = new LoadSaveInternalActivity();
String readData = InternalActivity.LoadData(file_name);
edittxt.setText(readData);
return rootView;
}
@Override
public void onStop() {
super.onStop();
InternalActivity = new LoadSaveInternalActivity();
InternalActivity.SaveData(edittxt.getText().toString(),file_name);
}
このクラスのメソッドを他のアクティビティから呼び出すことはできません。この場合、誰も私を助けることができますか?
実際には、フラグメント自体ではなく、別のクラスでそれらを定義する必要があります。私は他のクラスからもアクセスする必要があるからです。私がフラグメントでそれらを定義すると、すべてが問題ありません。 – srt
@srt: 'Context'をパラメータとする' static'メソッドをどこかに定義します。元のコードで 'getBaseContext()'の代わりに 'Context'を使います。あなたのフラグメントで 'getActivity()'を使って 'Context'をメソッドに渡してください。 – CommonsWare
どこか新しいクラスではどういう意味ですか?このように: 静的LoadData(コンテキストc、文字列ファイル名) – srt