Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 메서드
- 국제화
- mybatis
- 오버로딩
- OGNL
- Graphic
- struts2
- 전화걸기
- 안드로이드
- 이클립스
- Eclips
- paint
- Java
- AWT
- 메소드
- 배열
- 예외처리
- Menu
- JavaScript
- 클래스
- 기본
- HTML
- 생성자
- 어노테이션
- 에러페이지
- oracle
- layout
- Spring
- Android
- JSP
Archives
- Today
- Total
note
성적관리3(파일 저장사용) 본문
<?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"> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow> <TextView android:id="@+id/num" android:layout_width="50dp" android:layout_height="wrap_content" android:text="번호" /> <TextView android:id="@+id/text_num" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> <TableRow> <TextView android:id="@+id/name" android:layout_width="50dp" android:layout_height="wrap_content" android:text="이름" /> <EditText android:id="@+id/edit_name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> <TableRow> <TextView android:id="@+id/korean" android:layout_width="50dp" android:layout_height="wrap_content" android:text="국어" /> <EditText android:id="@+id/edit_korean" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" /> </TableRow> <TableRow> <TextView android:id="@+id/english" android:layout_width="50dp" android:layout_height="wrap_content" android:text="영어" /> <EditText android:id="@+id/edit_english" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" /> </TableRow> <TableRow> <TextView android:id="@+id/math" android:layout_width="50dp" android:layout_height="wrap_content" android:text="수학" /> <EditText android:id="@+id/edit_math" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" /> </TableRow> </TableLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/add" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="등록" /> <Button android:id="@+id/modify" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="수정" /> <Button android:id="@+id/del" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="삭제" /> </LinearLayout> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:choiceMode="singleChoice" /> </LinearLayout>
package kr.android.score3;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Score3 extends ListActivity {
private static final String SCORE_DATA = "score.txt";
ArrayList score_items;
ArrayList items;
ArrayAdapter adapter;
EditText name,korean,english,math;
TextView text;
int sum, avg, num;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
score_items = new ArrayList();
items = new ArrayList();
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_single_choice, items);
setListAdapter(adapter);
findViewById(R.id.add).setOnClickListener(mClickListener);
findViewById(R.id.modify).setOnClickListener(mClickListener);
findViewById(R.id.del).setOnClickListener(mClickListener);
text = (TextView)findViewById(R.id.text_num);
name = (EditText)findViewById(R.id.edit_name);
korean = (EditText)findViewById(R.id.edit_korean);
english = (EditText)findViewById(R.id.edit_english);
math = (EditText)findViewById(R.id.edit_math);
}
public void onResume() {
super.onResume();
try {
InputStream in=openFileInput(SCORE_DATA);
if (in!=null) {
InputStreamReader tmp=new InputStreamReader(in);
BufferedReader reader=new BufferedReader(tmp);
String str;
String[] scoredb;
while ((str = reader.readLine()) != null) {
scoredb = str.split("\\|");
score_items.add(str);
items.add(scoredb[0]+" (총점 : "+scoredb[4]+", 평균 : "+scoredb[5]+")");
}
in.close();
}
}
catch (java.io.FileNotFoundException e) {
// 아직 저장된 내용이 없을 뿐, 문제는 없다.
}
catch (Throwable t) {
Toast
.makeText(this, "예외: "+t.toString(), 2000)
.show();
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
num = position;
text.setText(position+"");
}
public void saveData() {
try {
OutputStreamWriter out=
new OutputStreamWriter(openFileOutput(SCORE_DATA, MODE_PRIVATE));
StringBuffer sb = new StringBuffer();
for(String str : score_items){
sb.append(str+"\n");
}
out.write(sb.toString());
out.close();
Toast.makeText(this, "데이터 처리 완료", 4000).show();
}
catch (Throwable t) {
Toast
.makeText(this, "예외: "+t.toString(), 2000)
.show();
}
}
public void uiSetChanged(){
name.setText("");
korean.setText("");
english.setText("");
math.setText("");
getListView().clearChoices();
adapter.notifyDataSetChanged();
saveData();
}
Button.OnClickListener mClickListener = new View.OnClickListener() {
public void onClick(View v) {
if(v.getId() == R.id.add){
String name2 = name.getText().toString();
String korean2 = korean.getText().toString();
String english2 = english.getText().toString();
String math2 = math.getText().toString();
if (name2 !=null && korean2 !=null && english2 !=null && math2 !=null) {
sum = Integer.parseInt(korean2)+Integer.parseInt(english2)+Integer.parseInt(math2);
avg = sum/3;
score_items.add(0,name2+"|"+korean2+"|"+english2+"|"+math2+"|"+sum+"|"+avg);
items.add(0,name2+" (총점 : "+sum+",평균 : " + avg + ")");
uiSetChanged();
}
}else if(v.getId() == R.id.modify){
String name2 = name.getText().toString();
String korean2 = korean.getText().toString();
String english2 = english.getText().toString();
String math2 = math.getText().toString();
if (name2 !=null && korean2 !=null && english2 !=null && math2 !=null) {
sum = Integer.parseInt(korean2)+Integer.parseInt(english2)+Integer.parseInt(math2);
avg = sum/3;
score_items.set(num,name2+"|"+korean2+"|"+english2+"|"+math2+"|"+sum+"|"+avg);
items.set(num,name2+" (총점 : "+sum+",평균 : " + avg + ")");
uiSetChanged();
}
}else{
ListView list = getListView();
int id=list.getCheckedItemPosition();
if (id != ListView.INVALID_POSITION) {
score_items.remove(id);
items.remove(id);
uiSetChanged();
}
}
}
};
/*
protected void onPause() {
super.onPause();
saveData();
}
*/
}
'개발노트' 카테고리의 다른 글
| Calendar 예제 (0) | 2012.02.08 |
|---|---|
| Game.DB 주소 (0) | 2012.02.02 |
| 성적관리 앱2 (0) | 2012.01.15 |
| 성적 관리 앱 (0) | 2012.01.12 |
| 안드로이드 성적관리 아이콘 (0) | 2012.01.11 |