前回やった疑問を解決すべく作ってみました。書き込んだデータがちゃんと次回起動時まで保持されているか。です。
今まで作ってきたコードを使用してがんばってみました。
はたして無事成功するのか!
今回はmain.xmlとstrings.xmlも変更しました。
ファイル名「main.xml」
01 | <?xml version= "1.0" encoding= "utf-8" ?> |
03 | android:layout_width= "fill_parent" |
04 | android:layout_height= "fill_parent" |
05 | android:orientation= "vertical" > |
08 | android:id= "@+id/TextView01" |
09 | android:textSize= "12pt" |
10 | android:layout_width= "fill_parent" |
11 | android:layout_height= "wrap_content" |
14 | android:id= "@+id/EditText01" |
15 | android:textSize= "12pt" |
16 | android:layout_width= "fill_parent" |
17 | android:layout_height= "wrap_content" |
20 | android:id= "@+id/Read" |
21 | android:layout_width= "fill_parent" |
22 | android:layout_height= "wrap_content" |
23 | android:text= "@string/Read" |
27 | android:id= "@+id/Save" |
28 | android:layout_width= "fill_parent" |
29 | android:layout_height= "wrap_content" |
30 | android:text= "@string/Save" |
35 | android:layout_width= "fill_parent" |
36 | android:layout_height= "wrap_content" |
37 | android:text= "@string/Del" |
ファイル名「strings.xml」
01 | <?xml version= "1.0" encoding= "utf-8" ?> |
04 | < string name= "hello" >Hello World, OutputText2Activity!</ string > |
05 | < string name= "Read" >書き込み</ string > |
06 | < string name= "Save" >読み込み</ string > |
07 | < string name= "Del" >削除</ string > |
08 | < string name= "app_name" >OutputText2</ string > |
|
ファイル名「OutputText2Activity.java」
001 | package and.roid.outputtext; |
003 | import java.io.BufferedReader; |
004 | import java.io.FileInputStream; |
005 | import java.io.FileOutputStream; |
006 | import java.io.IOException; |
007 | import java.io.InputStreamReader; |
009 | import android.app.Activity; |
010 | import android.graphics.PixelFormat; |
011 | import android.os.Bundle; |
012 | import android.text.Editable; |
013 | import android.view.Display; |
014 | import android.view.View; |
015 | import android.view.Window; |
016 | import android.view.WindowManager; |
017 | import android.view.View.OnClickListener; |
018 | import android.widget.Button; |
019 | import android.widget.EditText; |
020 | import android.widget.TextView; |
021 | import android.widget.Toast; |
023 | public class OutputText2Activity extends Activity implements OnClickListener{ |
024 | public float disp_w,disp_h; |
026 | static private final String FILE_PATH = "object.txt" ; |
027 | private EditText edit1; |
031 | private TextView textView; |
034 | public void onCreate(Bundle savedInstanceState) { |
035 | super.onCreate(savedInstanceState); |
036 | requestWindowFeature(Window.FEATURE_NO_TITLE); |
037 | getWindow().setFormat(PixelFormat.TRANSLUCENT); |
038 | Window window = getWindow(); |
039 | getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); |
040 | WindowManager manager = window.getWindowManager(); |
041 | Display disp = manager.getDefaultDisplay(); |
042 | disp_w = disp.getWidth(); |
043 | disp_h = disp.getHeight(); |
045 | setContentView(R.layout.main); |
047 | textView = (TextView) findViewById(R.id.TextView01); |
048 | edit1 = (EditText) this .findViewById(R.id.EditText01); |
049 | Read = (Button) this .findViewById(R.id.Read); |
050 | Read.setOnClickListener( this ); |
051 | Save = (Button) this .findViewById(R.id.Save); |
052 | Save.setOnClickListener( this ); |
053 | Del = (Button) this .findViewById(R.id.Del); |
054 | Del.setOnClickListener( this ); |
059 | public String readText() throws IOException{ |
063 | FileInputStream in = this .openFileInput(FILE_PATH); |
064 | BufferedReader reader = new BufferedReader( new InputStreamReader( in )); |
065 | StringBuffer sb = new StringBuffer(); |
067 | while ((sbs = reader.readLine()) != null ) { |
071 | return sb.toString(); |
075 | public void saveText(String text) throws IOException { |
086 | FileOutputStream output = this .openFileOutput(FILE_PATH,MODE_PRIVATE); |
087 | output.write(text.getBytes()); |
092 | public void DelText() throws IOException{ |
096 | FileOutputStream output = this .openFileOutput(FILE_PATH,MODE_PRIVATE); |
097 | output.write( "" .getBytes()); |
102 | public void onClick(View view){ |
106 | Editable et = edit1.getText(); |
107 | text = et.toString(); |
109 | saveText(et.toString()); |
110 | } catch (IOException e) { |
114 | Toast toast = Toast.makeText(getApplicationContext(), |
115 | "書き込みました:" +text, Toast.LENGTH_LONG); |
117 | } else if (view == Save){ |
120 | } catch (IOException e) { |
124 | Toast toast = Toast.makeText(getApplicationContext(), |
125 | "読み込みました:" +text, Toast.LENGTH_LONG); |
127 | } else if (view == Del){ |
130 | } catch (IOException e) { |
134 | Toast toast = Toast.makeText(getApplicationContext(), |
135 | "削除しました:" , Toast.LENGTH_LONG); |
138 | textView.setText(text); |
|
|
実行結果 |
|
使用方法 |
テキストボックスに書き込んだら"書き込み"ボタンを押してセーブします。その時点でデータは保持されるので一度アプリを終了させてみます。もう一度アプリを立ち上げて、今度は"読み込み"ボタンを押してみましょう。前回保持されたデータが最上部に書き出されます。
これでアプリケーションのデータを保持する方法がわかりました。今回色々試した結果、データの書き込み方法に種類があるので、例えば書き込み時に","をテキストの最後に付け加えて追記書き込みにしてあげるとcsvファイルが出来上がり、データ管理などもできそうです。
さて、何をつくろうかな・・・それが一番の問題ですね・・ |
|
|
assetsフォルダに入れたtextファイルを読み込み表示 |
|
その1のコードを使用して連続したデータを取り込み分解 |
|
今までの読み込みこんだデータを図形に変換してみた! |
|
|
アプリケーション専用ファイルでの書き込み読み込み |
|
アプリケーション終了→次回起動時までデータの保持 |