티스토리 뷰
// 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"
>
</LinearLayout>
// name.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/EdtName"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
/>
</LinearLayout>
// DataBase.java
package pkg.DataBase;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
public class DataBase extends ListActivity {
ArrayList<String> arGeneral;
WordDBHelper mHelper;
SQLiteDatabase db;
int Pos;
String Name;
EditText EdtName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHelper = new WordDBHelper(this);
DataToList();
}
public void onListItemClick(ListView list, View view, int position, long id) {
Pos = position;
list.setOnItemLongClickListener(new OnItemLongClickListener(){
public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {
Pos = position;
new AlertDialog.Builder(DataBase.this)
.setTitle("선택한 메모을 삭제 하시겠습니까?")
.setIcon(R.drawable.icon)
.setPositiveButton("삭제", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
String Sql, Where;
db = mHelper.getWritableDatabase();
Sql = "DELETE FROM memo WHERE name = ";
Where = arGeneral.get(Pos);
Sql = Sql + "'" + Where + "'";
db.execSQL(Sql);
mHelper.close();
DataToList();
}
})
.setNeutralButton("취소", null)
.show();
return true;
}
});
final LinearLayout linear = (LinearLayout) View.inflate(DataBase.this, R.layout.name, null);
EdtName = (EditText)linear.findViewById(R.id.EdtName);
Name = arGeneral.get(Pos);
EdtName.setText(Name);
new AlertDialog.Builder(DataBase.this)
.setTitle("메모 수정")
.setIcon(R.drawable.icon)
.setView(linear)
.setPositiveButton("수정", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
String Sql, Str;
db = mHelper.getWritableDatabase();
Str = EdtName.getText().toString();
Sql = "UPDATE memo SET name = '" + Str + "' WHERE name = '" + Name + "'";
db.execSQL(Sql);
mHelper.close();
DataToList();
}
})
.setNeutralButton("취소", null)
.show();
}
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem item = menu.add(0, 1, 0, "추 가");
item.setIcon(R.drawable.icon);
item.setAlphabeticShortcut('a');
// menu.add(0, 2, 0, "수 정").setIcon(R.drawable.icon);
// menu.add(0, 3, 0, "삭 제").setIcon(R.drawable.icon);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 1 : {
final LinearLayout linear = (LinearLayout) View.inflate(DataBase.this, R.layout.name, null);
new AlertDialog.Builder(DataBase.this)
.setTitle("추가할 메모을 입력하세요~")
.setIcon(R.drawable.icon)
.setView(linear)
.setPositiveButton("추가", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
String Str;
EdtName = (EditText)linear.findViewById(R.id.EdtName);
ContentValues row;
db = mHelper.getWritableDatabase();
Str = EdtName.getText().toString();
row = new ContentValues();
row.put("name", Str);
db.insert("memo", null, row);
mHelper.close();
DataToList();
}
})
.setNeutralButton("취소", null)
.show();
}
break;
case 2 : break;
case 3 : break;
}
return true;
}
public void DataToList() {
db = mHelper.getWritableDatabase();
Cursor cursor;
String Result;
arGeneral = new ArrayList<String>();
cursor = db.rawQuery("SELECT name FROM memo", null);
while(cursor.moveToNext()) {
Result = cursor.getString(0);
arGeneral.add(Result);
}
// 어댑터 준비
ArrayAdapter<String> Adapter;
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arGeneral);
setListAdapter(Adapter);
cursor.close();
mHelper.close();
}
}
class WordDBHelper extends SQLiteOpenHelper {
public WordDBHelper(Context context) {
super(context, "memo.db", null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE memo(_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT);");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// db.execSQL("DROP TABLE IF EXISTS memo");
// onCreate(db);
}
}
'Android > Android Studio' 카테고리의 다른 글
내부 스레드 & 핸들러 (0) | 2019.04.04 |
---|---|
외부 스레드 & 핸들러 (0) | 2019.04.04 |
ProgressDialog (0) | 2019.04.04 |
체크 박스 리스트 뷰 만들고 배경 넣기 (0) | 2019.04.04 |
컨트롤 배치 (수직, 수평) (0) | 2019.04.04 |
- Total
- Today
- Yesterday