メモ帳を作成する

今回はメモ帳を作成してみたいと思います。

機能としては、保存と破棄のみの簡単な機能のみのメモ帳を作ります。

 

最初にレイアウトですが、テキストフィールドと、ボタンを2つ、そしてstring.xmlの中に変数を用意しておきます。

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <EditText 
 android:id="@+id/editText1" 
 android:text="EditText" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content"></EditText>
 <Button 
 android:text="@string/save" 
 android:id="@+id/button1" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"></Button>
 <Button 
 android:text="@string/delete" 
 android:id="@+id/button2" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"></Button>
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="hello">Hello World, MemoFile!</string>
 <string name="app_name">memo</string>
 <string name="file_name">memofiles</string>
 <string name="save">保存</string>
 <string name="delete">破棄</string>
</resources>

以上で設定をしてパブリッシュをすると以下のようになります。

メモ帳

 

また、activityのファイルは下記のように記載をします。

package in.andante.memo;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MemoFile extends Activity implements OnClickListener {
 /** Called when the activity is first created. */
 EditText editText1;
 Button button1,button2;
 String fileName;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 editText1 = (EditText)findViewById(R.id.editText1);
 button1 = (Button)findViewById(R.id.button1);
 button2 = (Button)findViewById(R.id.button2);
 button1.setOnClickListener(this);
 button2.setOnClickListener(this);
 fileName = getResources().getString(R.string.file_name);
 try{
 FileInputStream fis = openFileInput(fileName);
 byte[] readBytes = new byte[fis.available()];
 fis.read(readBytes);
 editText1.setText(new String(readBytes));
 fis.close();
 }catch(Exception e){}
 }

 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 if(v == button1){
 //保存
 try{
 FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
 fos.write(editText1.getText().toString().getBytes());
 fos.close();
 }catch(Exception e){};
 
 }else if(v == button2){
 //破棄
 editText1.setText("");
 deleteFile(fileName);
 };
 }
}

 

今回に関しては、file名を固定にする事で常に、同じファイルを扱う事ができます。

今回使っている仕様に関して説明をします。

最初は、findViewByIdでmain.xmlで配置しているファイルをスクリプト内に反映します。

またFileInputStreamで最初にread(読み込み)を行っております。

一番最初、またはファイルを破棄した状態ではファイルは存在しないので、catchでエラーの場合わけを行います。

ファイルを保存する時にはFileOutputStreamを用いて、画像画像を保存しています。

この時ファイルの容量はテキストの容量と同義なので、テキストの容量をバッファーのサイズにあてる事ができます。

またファイルの破棄の際にはdeleteFileのみで破棄ができます。

 

以上で、簡単なメモ帳ができました(本当に簡単なものですいません。)

よろしければ練習に作成をしてみてください。

前後の記事

前の記事:

次の記事:

関連の記事

コメント

:D 佐々木靖成

初めまして。

このサイトで勉強させてもらってます。
早速ですが、23-25のところがエラーとなってしまいます。findViewById()のところです。

よろしければご教授お願い致します。

:D 通りすがり

>佐々木様
いつの投稿に対しての返信かわかりませんが、
恐らく、string.xmlが保存されていないのかと思います。
もしくは作成されていないか。

:D tricker

import android.R;
と書けばよいかもしれません。

http://stackoverflow.com/questions/5143369/main-cannot-be-resolved-or-is-not-a-field

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑