Day2에서 구현 못한 파일 오픈과 관련된 기능을 추가.
구현 내용
- 메뉴 구성 : day 2
- 타이틀 제목/New/Open/Exit 로 구성 - New 버튼 : day 2
- 메모입력창을 띄운다.
- 텍스트입력창 (상단) : 메모의 내용을 입력받는다.
- 텍스트입력창 (하단) : 한줄로 메모의 내용을 저장시킬 파일 이름을 입력 받는다.
- 버튼 (SAVE) : 바로 저장해 버린다.
- 버튼 (MENU) : 초기 메뉴로 나가버린다. - Open 버튼 : day 3
- 저장되어 있는 파일들을 보여준다.
- 사용자가 파일을 선택하면 스크롤 뷰 레이아웃을 이용해 내용을 보여주기만 한다.
- 버튼 (EDIT) : 읽고있는 내용을 메모입력창으로 보내 사용자가 편집할 수 있게 한다.
- 버튼 (MENU) : 초기 메뉴로 나가버린다. - Exit 버튼 : day 2
- 어플 종료
구현 결과
|
|
|
|
|
|
|
|
주요 코드
리스트에서 선택된 position 을 받아와 선택된 파일읽어 오기 |
String[] sReadFile = new String[2]; //[0] 파일이름 , [1] 파일내용 public void setReadFile(int pos){ sReadFile[FILENAME] = mFileList[pos]; try { FileInputStream fis = openFileInput(mFileList[pos]); //파일 크기만큼 buffer 열기 buffer = new byte[fis.available()]; //버퍼안에다 값 넣기 fis.read(buffer, 0, fis.available()); //byte값 string으로 변환 readFile에는 메모의 내용이 들어간다 sReadFile[FILECONTENT] = byteToString(buffer); fis.close(); } catch (Exception e) { e.printStackTrace(); } } |
byteToString 메소드 |
public String byteToString(byte buffer[]) { char[] cBuffer = new char[buffer.length];
for(int i = 0 ; i < buffer.length ; i ++) cBuffer[i]=(char)buffer[i];
return new String(cBuffer); } |
ListActivity 사용 |
public class OpenList extends ListActivity implements Variable{ /** Called when the activity is first created. */ String[] mFileList; //파일리스트 받아올 String배열
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
if( fileList().length != 0 ){ mFileList = fileList(); this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mFileList));
}else{ //파일이 없다는걸 표시해 줘야 한다. }
} } |
어설프게 모양새는 갖춰졌지만 에뮬레이터에서 테스트하며 뿜어내는 오류들 고쳐야하는데 ;;;
ㅜㅠ 각 Activity를
이동할
때 finish();를
사용한
부분도
있지만
그렇지
않고
이동할땐 finish();를
한것과 안한것의 차이는 뭔지, finish();대신에 startActivity(intent);로 불려지는거랑 차이가 뭔지 궁금
하다.
파일을 지워주고 리스트를 다시 받아오기 위해
mFileList = fileList();
this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mFileList));
이 부분을 다시 불러왔는데 에뮬레이터에서 테스트할때는 문제가 없었지만 뭔가 찜찜하다;;
'Android' 카테고리의 다른 글
Day 4 : 2D 를 표현하기 위한 기본 코드 (0) | 2009.12.31 |
---|---|
Tip. Key 에 대한 정의 지정해주기. (0) | 2009.12.30 |
day 2 : 간단한 메모장 만들기 (진행중) (0) | 2009.12.29 |
day 1 : Activity 전환 테스트 (0) | 2009.12.28 |
day 1 : XML 테스트 (0) | 2009.12.28 |