2017-09-15 20 views
0

変更を保存するボタンがあり、これを内部ストレージに入れておいてから、アプリケーション起動時に、もしあればファイルを読みたいと思います。私はそれが十分かもしれないと思ったが、私は新鮮なコーダーとドンノは良いです。アプリの起動時に内部ストレージからファイルを読み込む方法

私は

マイコードを突っ込んbecous間違いであり、またそれが良いコードです、plsは私を助けて知らない

パブリッククラスMyGameDetailsFragmentは断片{

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_my_game_details, container, false); 


    try { 
     FileInputStream is = getActivity().openFileInput(file); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line).append("\n"); 
     } 
     is.close(); 
    } catch(OutOfMemoryError om) { 
     om.printStackTrace(); 


    } catch(Exception ex) { 
     ex.printStackTrace(); 

    } 
    String result = sb.toString(); 
    saveBtn = (Button) view.findViewById(R.id.savechangesbtn); 
    saveBtn.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View view) { 
      Data1 = s1.getText().toString(); 
      Data2 = s2.getText().toString(); 
      Data3 = s3.getText().toString(); 
      Data4 = s4.getText().toString(); 
      Data5 = s5.getText().toString(); 
      Data6 = s6.getText().toString(); 


      try { 

       FileOutputStream fos=getActivity().openFileOutput(file, getActivity().MODE_PRIVATE); 
       ObjectOutputStream outputStream = new ObjectOutputStream(fos); 
       outputStream.write(Data1.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data2.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data3.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data4.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data5.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data6.getBytes()); 
       outputStream.close(); 

       //Toast.makeText(context,"file saved",Toast.LENGTH_SHORT).show(); 
      }catch (FileNotFoundException e){ 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 

      try { 
       FileInputStream inputStream = getActivity().openFileInput(file); 
       BufferedReader r = new BufferedReader(new InputStreamReader(inputStream)); 
       StringBuilder total = new StringBuilder(); 
       String line; 

       while ((line = r.readLine()) != null) { 
        total.append(line); 
       } 
       r.close(); 
       inputStream.close(); 
       Log.d("File", "File contents: " + total); 
      } catch (Exception e) { 
       e.printStackTrace(); 

      } 

     } 
    }); 

    return view; 

} を拡張}

Ps:s1、s2などはコードなどで作成されます

許可私はいけないOnCreateViewのライトコード()の断片でメソッドは、常にOnViewCreated方法でコードを書く、ことを示唆しているすべての

<uses-permission android:name="android.hardware.camera" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 

答えて

0

まず。

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_my_game_details, container, false); 
    return view; 
} 

public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     try { 
     FileInputStream is = getActivity().openFileInput(file); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line).append("\n"); 
     } 
     is.close(); 
    } catch(OutOfMemoryError om) { 
     om.printStackTrace(); 


    } catch(Exception ex) { 
     ex.printStackTrace(); 

    } 
    String result = sb.toString(); 
    saveBtn = (Button) view.findViewById(R.id.savechangesbtn); 
    saveBtn.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View view) { 
      Data1 = s1.getText().toString(); 
      Data2 = s2.getText().toString(); 
      Data3 = s3.getText().toString(); 
      Data4 = s4.getText().toString(); 
      Data5 = s5.getText().toString(); 
      Data6 = s6.getText().toString(); 


      try { 

       FileOutputStream fos=getActivity().openFileOutput(file, getActivity().MODE_PRIVATE); 
       ObjectOutputStream outputStream = new ObjectOutputStream(fos); 
       outputStream.write(Data1.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data2.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data3.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data4.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data5.getBytes()); 
       outputStream.write(newline.getBytes()); 
       outputStream.write(Data6.getBytes()); 
       outputStream.close(); 

       //Toast.makeText(context,"file saved",Toast.LENGTH_SHORT).show(); 
      }catch (FileNotFoundException e){ 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 

      try { 
       FileInputStream inputStream = getActivity().openFileInput(file); 
       BufferedReader r = new BufferedReader(new InputStreamReader(inputStream)); 
       StringBuilder total = new StringBuilder(); 
       String line; 

       while ((line = r.readLine()) != null) { 
        total.append(line); 
       } 
       r.close(); 
       inputStream.close(); 
       Log.d("File", "File contents: " + total); 
      } catch (Exception e) { 
       e.printStackTrace(); 

      } 

     } 
    }); 
} 

エラーが発生した場合は、エラーのスタックトレースを書き留めてください。

おかげ

+0

自分自身でそれを解決、私はこのテキストは、アプリの開始と表示dosentことの問題は、近いアプリ後mabyこのファイルも削除されてしまいましたか? 59::のみconsloe 9月15日07で 24.604 1647年から1661年/ system_process E/memtrack:59:24.604 1647年から1661年/ system_processのW/android.os 9月15日07 memtrackモジュールをロードできませんでした。デバッグ:メモリ消費情報を取得できませんでした:-1 –

+0

また、ファイルが内部ストレージにあることを確認する行が必要です。 –

0
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    Other = (TextView) view.findViewById(R.id.Details); 
    OtherD = (TextView) view.findViewById(R.id.OtherDetails); 



    try { 
     FileInputStream is = getActivity().openFileInput(file); 
     byte[] input = new byte[is.available()]; 
     while(is.read(input) != -1){ 


      value += new String(input); 
     } 
     is.getFD().sync(); 
     //is.flush(); 
     is.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    String[] strArray = value.split(";"); 

    s1.setText(strArray[1]); 
    s2.setText(strArray[2]); 
    s3.setText(strArray[3]); 
    s4.setText(strArray[4]); 
    s5.setText(strArray[5]); 
    s6.setText(strArray[6]); 
    s7.setText(strArray[7]); 






    saveBtn = (Button) view.findViewById(R.id.savechangesbtn); 
    saveBtn.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View view) { 
      Data1 = s1.getText().toString(); 

      Data2 = s2.getText().toString(); 
      Data3 = s3.getText().toString(); 
      Data4 = s4.getText().toString(); 
      Data5 = s5.getText().toString(); 
      Data6 = s6.getText().toString(); 
      Data7= s7.getText().toString(); 


      try { 

       FileOutputStream fos=getActivity().openFileOutput(file, getActivity().MODE_PRIVATE); 
       ObjectOutputStream outputStream = new ObjectOutputStream(fos); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data1.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data2.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data3.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data4.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data5.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data6.getBytes()); 
       outputStream.write(string3.getBytes()); 
       outputStream.write(Data7.getBytes()); 
       outputStream.write(string3.getBytes()); 
       //outputStream.getFD().sync(); 
       outputStream.flush(); 
       outputStream.close(); 
       //Toast.makeText(context,"file saved",Toast.LENGTH_SHORT).show(); 
      }catch (FileNotFoundException e){ 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 

      try { 
       FileInputStream inputStream = getActivity().openFileInput(file); 
       BufferedReader r = new BufferedReader(new InputStreamReader(inputStream)); 
       StringBuilder total = new StringBuilder(); 
       String line; 
       while ((line = r.readLine()) != null) { 
        total.append(line); 
       } 
       r.close(); 
       inputStream.close(); 
       Log.d("File", "File contents: " + total); 
      } catch (Exception e) { 
       e.printStackTrace(); 

      } 

     } 
    }); 


} 

は、私はすべてのエラーを持っていけない

関連する問題