초간단 메모장 만들기
간단한 메모장 설명
- 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
도움되셨다면 공감 버튼 꾹 눌러주세요
오늘도 좋은 하루 되세요~
'Android' 카테고리의 다른 글
android - webview(웹뷰)예제 (0) | 2017.08.26 |
---|---|
android - 안드로이드 SQLite execSQL()과 rawQuery()의 차이 (0) | 2017.08.25 |
안드로이드 - HttpURLConnection 예제 (0) | 2017.08.24 |
안드로이드 동영상 스트리밍(mjpeg-streamer) (0) | 2017.06.30 |
안드로이드 sqlite - SQLiteOpenHelper클래스 (0) | 2017.06.15 |