Você está na página 1de 5

UNIVERSIDADE PRESIDENTE ANTNIO CARLOS FACULDADE DE EDUCAO E ESTUDOS SOCIAIS DE TEFILO OTONI Curso: Cincia da Computao - Disciplina: Programao

Android Prof. Cssio Sena cassiosena@gmail.com Data 28/11/12

Trabalho Laboratrio 20 Pontos

01 Usando o SQLite
Passo 1 - Crie um novo projeto Android. Use como nome para o projeto SQLite. O nome do pacote deve ser br.com.unipacto.android, e o nome da activity deve ser MainActivity.(obsero se no projeto voc criar a MainActivity no precisara adicionar o main.xml abaixo.) Passo 2 - Na pasta res/layouts crie um arquivo chamado main.xml. Ele deve conter o seguinte contedo:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id ="@android:id/list" android:layout_width ="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/no_notes"/> </LinearLayout>
Passo 3 -

O arquivo res/values/strings.xml deve ficar com o seguinte contedo:

<resources> <string name="app_name">SQLite</string> <string name="title_activity_main">MainActivity</string> <string name="add">Adicionar</string> <string name="no_notes">Nenhuma anotao</string> <string name="write_a_note">Escreva uma anotao</string> <string name="save">Salvar</string> </resources>
Passo 4

Crie um novo arquivo java chamado CustomSQLiteOpenHelper com o seguinte

contedo:
package br.com.unipacto.android; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class CustomSQLiteOpenHelper extends SQLiteOpenHelper{ public static final String TABLE_NOTES="notes"; public static final String COLUMN_ID="_id"; public static final String COLUMN_NOTES="note"; private static final String DATABASE_NAME="notes.db"; private static final int DATABASE_VERSION=1; // Database creation sql statement private static final String DATABASE_CREATE="create table" + TABLE_NOTES + "(" + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_NOTES + " text not null);"; public CustomSQLiteOpenHelper(Context context){ super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase database) { database.execSQL(DATABASE_CREATE); }

UNIVERSIDADE PRESIDENTE ANTNIO CARLOS FACULDADE DE EDUCAO E ESTUDOS SOCIAIS DE TEFILO OTONI Curso: Cincia da Computao - Disciplina: Programao Android Prof. Cssio Sena cassiosena@gmail.com Data 28/11/12

@Override public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { db.execSQL("DROP TABLE IF EXISTS" + TABLE_NOTES); onCreate(db); } }

Passo 5 -

Crie um arquivo java chamado Note, com o seguinte contedo:

package br.com.unipacto.android; public class Note{ private long id; private String note; @Override public String toString() { return note; } public long getId(){ return id; } public void setId(long id){ this.id=id; } public String getNote(){ return note; } public void setNote(String note) { this.note=note; } }
Passo 6 -

Crie um arquivo java chamado NotesDao, com o seguinte contedo:

package br.com.unipacto.android; import java.util.ArrayList; import java.util.List; import import import import import android.content.ContentValues; android.content.Context; android.database.Cursor; android.database.SQLException; android.database.sqlite.SQLiteDatabase;

public class NotesDao { private SQLiteDatabase database; private String [] columns={CustomSQLiteOpenHelper.COLUMN_ID , CustomSQLiteOpenHelper.COLUMN_NOTES }; private CustomSQLiteOpenHelper sqliteOpenHelper; public NotesDao(Context context) { sqliteOpenHelper=new CustomSQLiteOpenHelper(context); } public void open()throws SQLException{ database=sqliteOpenHelper.getWritableDatabase(); } public void close(){ sqliteOpenHelper.close(); } public Note create(String note) { ContentValues values=new ContentValues(); values.put(CustomSQLiteOpenHelper.COLUMN_NOTES , note); long insertId = database.insert(CustomSQLiteOpenHelper.TABLE_NOTES, null, values );

UNIVERSIDADE PRESIDENTE ANTNIO CARLOS FACULDADE DE EDUCAO E ESTUDOS SOCIAIS DE TEFILO OTONI Curso: Cincia da Computao - Disciplina: Programao Android Prof. Cssio Sena cassiosena@gmail.com Data 28/11/12

Cursor cursor=database.query(CustomSQLiteOpenHelper.TABLE_NOTES , columns , CustomSQLiteOpenHelper.COLUMN_ID + " = " + insertId , null , null , null , null ); cursor.moveToFirst(); Note newNote = new Note(); newNote.setId(cursor.getLong(0)); newNote.setNote(cursor.getString(1)); cursor.close(); return newNote ; } public void delete(Note note) { long id=note.getId(); database.delete(CustomSQLiteOpenHelper.TABLE_NOTES , CustomSQLiteOpenHelper.COLUMN_ID + " = " + id , null ); } public List <Note>getAll(){ List <Note> notes = new ArrayList <Note>(); Cursor cursor = database.query(CustomSQLiteOpenHelper.TABLE_NOTES , columns , null , null , null , null , null ); cursor.moveToFirst(); while (!cursor.isAfterLast()) { Note note = new Note(); note.setId(cursor.getLong(0)); note.setNote(cursor.getString(1)); notes.add(note); cursor.moveToNext(); } cursor.close(); return notes; } }
Passo 7 - Edite o arquivo res/menu/main.xml (se o arquivo no existir, voc deve cri-lo). Deixe-o com o seguinte contedo:

<menu xmlns:android ="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add_note" android:title="@string/add" android:showAsAction="ifRoom"/> </menu>


Passo 8 - A

seguir edite o arquivo MainActivity.java para que ele fique com o seguinte

contedo:
package br.com.unipacto.android; import java.util.List; import import import import import import android.app.ListActivity; android.content.Intent; android.os.Bundle; android.view.Menu; android.view.MenuItem; android.widget.ArrayAdapter;

public class MainActivity extends ListActivity { private NotesDao dao; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); dao = new NotesDao(this); dao.open(); } @Override protected void onResume(){

UNIVERSIDADE PRESIDENTE ANTNIO CARLOS FACULDADE DE EDUCAO E ESTUDOS SOCIAIS DE TEFILO OTONI Curso: Cincia da Computao - Disciplina: Programao Android Prof. Cssio Sena cassiosena@gmail.com Data 28/11/12

dao.open(); super.onResume(); List <Note> notes = dao.getAll(); ArrayAdapter <Note > adapter = new ArrayAdapter <Note>(this, android.R.layout.simple_list_item_1,notes); setListAdapter(adapter); } @Override protected void onPause(){ dao.close(); super.onPause(); } @Override public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ if(item.getItemId()==R.id.add_note) { Intent intent=new Intent(this,AddNoteActivity.class); startActivity(intent); } return super.onOptionsItemSelected(item); } }

Passo 9 Crie um novo arquivo XML na pasta de layouts chamado add_note.xml com o contedo abaixo:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/note_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textMultiLine" android:hint="@string/write_a_note"/> <Button android:id="@+id/save_note_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/save"/> </LinearLayout>
Passo 10 Crie uma nova classe chamada AddNoteActivity que herda Activity e possui o contedo abaixo:

package br.com.unipacto.android; import import import import import import android.app.Activity ; android.os.Bundle ; android.view.View; android.view.View.OnClickListener; android.widget.Button; android.widget.EditText;

public class AddNoteActivity extends Activity { private NotesDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

UNIVERSIDADE PRESIDENTE ANTNIO CARLOS FACULDADE DE EDUCAO E ESTUDOS SOCIAIS DE TEFILO OTONI Curso: Cincia da Computao - Disciplina: Programao Android Prof. Cssio Sena cassiosena@gmail.com Data 28/11/12

setContentView(R.layout.add_note); dao = new NotesDao(this); dao.open(); Button saveButton = (Button)findViewById(R.id.save_note_button); final EditText noteText=(EditText)findViewById(R.id.note_text); saveButton.setOnClickListener(newOnClickListener(){ @Override public void onClick(View v) { String note = noteText.getEditableText().toString(); dao.create(note); finish(); } }); } @Override protected void onResume(){ dao.open(); super.onResume(); } @Override protected void onPause(){ dao.close(); super.onPause(); } }
Passo 11 - Se lembre de adicionar os nomes das activities no AndroidManifest.xml. Aps isso, rode a aplicao e veja o resultado. Feche a aplicao e abra novamente, para ver se o nome est salvo.