Android

android - 안드로이드 초간단 메모장 만들기

로픽 2017. 8. 25. 20:17
300x250

초간단 메모장 만들기

 

간단한 메모장 설명

 

- 3개의 버튼으로 구성되어 있다.(load, save, delete)

 

- 그 아래 edittext를 통해서 글을 입력하고 불러오기하여 수정할 수 있습니다.

 

- load, save, delete를 할때마다 토스트메세지를 출력합니다.


** MainActivity.java

public class MainAc extends AppCompatActivity{

 

    private static String TAG = "MainActivity";

    Button load, save, delete;

    EditText inputText;

    

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

        load= (Button) findViewById(R.id.load);

        save = (Button) findViewById(R.id.save);

        delete = (Button) findViewById(R.id.delete);

        inputText = (EditText) findViewById(R.id.inputText);

 

        load.setOnClickListener(listener);

        save.setOnClickListener(listener);

        delete.setOnClickListener(listener);

    }

 

    View.OnClickListener listener = new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            switch (view.getId()){

                case R.id.load:

                    Log.i("TAG", "load 진행");

                    FileInputStream fis = null;

                    try{

                        fis = openFileInput("memo.txt");

                        byte[] data = new byte[fis.available()];

                        while( fis.read(data) != -1){

                        }

 

                        inputText.setText(new String(data));

                        Toast.makeText(MainAc.this, "load 완료", Toast.LENGTH_SHORT).show();

                    }catch(Exception e){

                        e.printStackTrace();

                    }finally{

                        try{ if(fis != null) fis.close(); }catch(Exception e){e.printStackTrace();}

                    }

                    break;

                case R.id.save:

                    Log.i("TAG", "save 진행");

                    FileOutputStream fos = null;

                    try{

                        fos = openFileOutput("memo.txt", Context.MODE_PRIVATE);

                        String out = inputText.getText().toString();

                        fos.write(out.getBytes());

                        Toast.makeText(MainAc.this, "save 완료", Toast.LENGTH_SHORT).show();

                    }catch(Exception e){

                        e.printStackTrace();

                    }finally{

                        try{ if(fos != null) fos.close(); }catch(Exception e){e.printStackTrace();}

                    }

                    break;

                case R.id.delete:

                    Log.i("TAG", "delete 진행");

                    boolean b = deleteFile("memo.txt");

                    if(b){

                        Toast.makeText(MainAc.this, "delete 완료", Toast.LENGTH_SHORT).show();

                    }else{

                        Toast.makeText(MainAc.this, "delete 실패", Toast.LENGTH_SHORT).show();

                    }

                    break;

            }

        }

    };

}

 

- load를 실행할 때 byte배열의 크기는 fis.available()를 통해서 설정한다. (읽어오는 파일의 텍스트 크기를 반환)

 

- 그 후 edittext(inputText)내부에 텍스트를 입력하기 위해서 new String(data)를 이용. (data.toString은 텍스트깨짐)


** activity_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="match_parent"

    android:layout_height="match_parent">

 

    <LinearLayout

        android:orientation="horizontal"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_weight="1">

 

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="LOAD"

            android:id="@+id/load"

            android:layout_weight="1" />

 

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="SAVE"

            android:id="@+id/save"

            android:layout_weight="1" />

 

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="DELETE"

            android:id="@+id/delete"

            android:layout_weight="1" />

    </LinearLayout>

 

    <EditText

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:id="@+id/inputText"

        android:layout_weight="9"

        android:textIsSelectable="false"

        android:gravity="top" />

 

</LinearLayout>

 

 

** Design 탭에서 간단하게 설정이 가능합니다. text를 일일히 입력할 필요 없음

 

** 버튼을 나열한 이후 weight를 통해서 비율을 1:1:1로 만들고 버튼들과 edittext 비율을 1:9로 설정

 

** edittext의 경우 크기를 키우면 입력 커서가 중간에 위치하기 때문에 gravity 설정을 top로 해준다.

 

 

 

 

 

** 이어서 초간단 메모장 만들기2가 있습니다 **

 

http://lopicit.tistory.com/257

 

 

도움되셨다면 공감 버튼 꾹 눌러주세요

오늘도 좋은 하루 되세요~

반응형