Foi usado esse código para a extração das informações que serão apresentadas na aplicação android.
A aplicação ira fazer uma solicitação ao servidor web PHP, que respondera por meio do JSON, o resultado é a apresentação da lista dos itens carregados no celular.
________________________________________________________________________________
> LaudoActivity.java
package com.rober.clinica_laudo;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONArray;
import org.json.JSONObject;
import com.rober.clinica_laudo.R;
import android.R.string;
import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class LaudoActivity extends ListActivity {
//ListAdapter adapter;
LaudoAdapter adapter;
DBAdapter datasource;
Button btNovoContacto;
Button btBuscarServer;
TextView textRober;
private List<Laudo> laudoList = new ArrayList<Laudo>();
ListView listView;
// comunicação server
private static final int TIMEOUT_MILLISEC = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.linearLayout1);
datasource = new DBAdapter(this);
datasource.open();
Cursor cursor = datasource.getLaudos();
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
Laudo laudo = new Laudo(cursor.getLong(0), cursor.getLong(1),
cursor.getString(2), cursor.getString(3),
cursor.getString(4), cursor.getString(5),
cursor.getString(6));
laudoList.add(laudo);
}
setListAdapter(new LaudoAdapter(this, laudoList));
datasource.close();
btBuscarServer = (Button) findViewById(R.id.btBuscarServer);
btBuscarServer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String max_cod = "";
datasource.open();
Cursor cursor = datasource.getMaxLaudo();
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
Log.i("MAX", "max - " + cursor.getString(0));
if (cursor.getString(0) != null) {
max_cod = cursor.getString(0);
} else {
max_cod = "0";
}
}
datasource.close();
HttpAsyncTask asyncTask = new HttpAsyncTask(max_cod);
asyncTask.execute();
// asyncTask.cancel(true);
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
}
private class HttpAsyncTask extends AsyncTask<String, Integer, ArrayList> {
String max_cod;
public HttpAsyncTask(String max_cod) {
// TODO Auto-generated constructor stub
this.max_cod = max_cod;
}
@Override
protected ArrayList doInBackground(String... max_cod) {
try {
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
//
HttpParams p = new BasicHttpParams();
p.setParameter("user", "1");
// Instantiate an HttpClient
HttpClient httpclient = new DefaultHttpClient(p);
String url = "http://10.0.2.2:80/clinica/"
+ "clinica.php?max_cod=" + this.max_cod
+ "&user=1&format=json";
HttpPost httppost = new HttpPost(url);
// Instantiate a GET HTTP method
try {
Log.i(getClass().getSimpleName(), "send task - start");
//
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs.add(new BasicNameValuePair("user", "1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
Log.i(getClass().getSimpleName(), "funcionou ate");
String responseBody = httpclient.execute(httppost,
responseHandler);
Log.d("TESTE", responseBody);
// Parse
JSONObject json = new JSONObject(responseBody);
JSONArray jArray = json.getJSONArray("posts");
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < jArray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = jArray.getJSONObject(i);
String s = e.getString("post");
JSONObject jObject = new JSONObject(s);
map.put("codigo",
jObject.getString("clin_func_empr_exam_codigo"));
map.put("medico", jObject.getString("medi_nome"));
map.put("func", jObject.getString("func_empr_nome"));
map.put("exame", jObject.getString("exam_nome"));
map.put("data", jObject
.getString("clin_func_empr_exam_data_exame"));
map.put("valor",
jObject.getString("clin_func_empr_exam_valor"));
mylist.add(map);
}
datasource.open();
HashMap<String, String> map_2 = new HashMap<String, String>();
for (Iterator<HashMap<String, String>> it = mylist
.iterator(); it.hasNext();) {
map_2 = it.next();
datasource.createLaudo(map_2.get("codigo"),
map_2.get("medico"), map_2.get("func"),
map_2.get("exame"), map_2.get("data"),
map_2.get("valor"));
}
datasource.close();
return mylist;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Throwable t) {
Log.i("Contactos", t.getMessage());
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
@SuppressLint("ParserError")
@Override
protected void onPostExecute(ArrayList result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
laudoList.clear();
datasource.open();
Cursor cursor = datasource.getLaudos();
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
Laudo contacto = new Laudo(cursor.getLong(0),
cursor.getLong(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4),
cursor.getString(5), cursor.getString(6));
laudoList.add(contacto);
}
adapter = new LaudoAdapter(LaudoActivity.this, laudoList);
setListAdapter(adapter);
adapter.notifyDataSetChanged();
datasource.close();
}
}
}
/*******************************************************************************/
> DbHelper.java
Classe responsável pela conexão com o banco sqllite.
package com.rober.clinica_laudo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DbHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "exames";
private static final String DATABASE_NAME = " clinica_laudo.db";
public static final String ID = "id";
public static final String CODIGO = "clin_func_empr_exam_codigo";
public static final String MEDICO = "medi_nome";
public static final String FUNCIONARIO = "func_empr_nome";
public static final String EXAME = "exam_nome";
public static final String DATA = "clin_func_empr_exam_data_exame";
public static final String VALOR = "clin_func_empr_exam_valor";
private static final String DATABASE_CREATE = "create table "
+ TABLE_NAME + "( " + ID
+ " integer primary key autoincrement, " + CODIGO
+ " integer not null, " + MEDICO
+ " text not null, " + FUNCIONARIO
+ " text not null, " + EXAME
+ " text not null, " + DATA
+ " text not null, " + VALOR
+ " text not null);";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
//super()
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(DbHelper.class.getName(), "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
/********************************************************************************/
> DBAdapter.java
package com.rober.clinica_laudo;
import java.io.ByteArrayOutputStream;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class DBAdapter {
private SQLiteDatabase database;
private DbHelper dbHelper;
private String[] allColumns = { dbHelper.ID, dbHelper.CODIGO,
dbHelper.MEDICO, dbHelper.FUNCIONARIO, dbHelper.EXAME,
dbHelper.DATA, dbHelper.VALOR };
public DBAdapter(Context context) {
dbHelper = new DbHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public Void createLaudo(String codigo, String medico, String func,
String exame, String data, String valor) {
ContentValues values = new ContentValues();
values.put(dbHelper.CODIGO, codigo);
values.put(dbHelper.MEDICO, medico);
values.put(dbHelper.FUNCIONARIO, func);
values.put(dbHelper.EXAME, exame);
values.put(dbHelper.DATA, data);
values.put(dbHelper.VALOR, valor);
long insertId = database.insert(dbHelper.TABLE_NAME, null, values);
// To show how to query
Cursor cursor = database.query(dbHelper.TABLE_NAME, allColumns,
dbHelper.ID + " = " + insertId, null, null, null, null);
cursor.moveToFirst();
return null;
}
private Laudo cursorToLaudo(Cursor cursor) {
Laudo laudo = new Laudo(cursor.getLong(0),
cursor.getLong(1), cursor.getString(2), cursor.getString(3),
cursor.getString(4), cursor.getString(5), cursor.getString(6));
return laudo;
}
public Cursor getLaudos() {
Cursor cursor = database.rawQuery("select " + dbHelper.ID + ", "
+ dbHelper.CODIGO + ", " + dbHelper.MEDICO + ", "
+ dbHelper.FUNCIONARIO + ", " + dbHelper.EXAME + ", "
+ dbHelper.DATA + ", " + dbHelper.VALOR + " from exames ORDER BY " + dbHelper.CODIGO + " desc", null);
return cursor;
}
public Laudo getLaudo(int idLaudo) {
Cursor cursor = database.query(dbHelper.TABLE_NAME, allColumns,
dbHelper.CODIGO + " = " + idLaudo, null, null, null, null);
cursor.moveToFirst();
return cursorToLaudo(cursor);
}
public Cursor getMaxLaudo() {
Cursor cursor = database.rawQuery("select MAX(" + dbHelper.CODIGO
+ ") " + " from exames", null);
return cursor;
}
}
/*******************************************************************************/
> Laudo.java
package com.rober.clinica_laudo;
public class Laudo {
private long id;
private long clin_func_empr_exam_codigo;
private String medi_nome;
private String func_empr_nome;
private String exam_nome;
private String clin_func_empr_exam_data_exame;
private String clin_func_empr_exam_valor;
public Laudo(long id, long codigo, String medico, String func,String exame,String data,String valor){
this.id=id;
this.clin_func_empr_exam_codigo=codigo;
this.medi_nome=medico;
this.func_empr_nome=func;
this.exam_nome=exame;
this.clin_func_empr_exam_data_exame=data;
this.clin_func_empr_exam_valor=valor;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getClin_func_empr_exam_codigo() {
return clin_func_empr_exam_codigo;
}
public void setClin_func_empr_exam_codigo(long clin_func_empr_exam_codigo) {
this.clin_func_empr_exam_codigo = clin_func_empr_exam_codigo;
}
public String getMedi_nome() {
return medi_nome;
}
public void setMedi_nome(String medi_nome) {
this.medi_nome = medi_nome;
}
public String getFunc_empr_nome() {
return func_empr_nome;
}
public void setFunc_empr_nome(String func_empr_nome) {
this.func_empr_nome = func_empr_nome;
}
public String getExam_nome() {
return exam_nome;
}
public void setExam_nome(String exam_nome) {
this.exam_nome = exam_nome;
}
public String getClin_func_empr_exam_data_exame() {
return clin_func_empr_exam_data_exame;
}
public void setClin_func_empr_exam_data_exame(
String clin_func_empr_exam_data_exame) {
this.clin_func_empr_exam_data_exame = clin_func_empr_exam_data_exame;
}
public String getClin_func_empr_exam_valor() {
return clin_func_empr_exam_valor;
}
public void setClin_func_empr_exam_valor(String clin_func_empr_exam_valor) {
this.clin_func_empr_exam_valor = clin_func_empr_exam_valor;
}
}
/*******************************************************************************/
> LaudoAdapter.java
package com.rober.clinica_laudo;
import java.util.List;
import com.rober.clinica_laudo.R;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class LaudoAdapter extends BaseAdapter {
private Context context;
private List<Laudo> laudoList;
public LaudoAdapter(Context context, List<Laudo> laudoList) {
this.context = context;
this.laudoList = laudoList;
}
public int getCount() {
return laudoList.size();
}
public Object getItem(int position) {
return laudoList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// Recupera o estado da posição atual
Laudo laudo = laudoList.get(position);
// Cria uma instância do layout XML para os objetos correspondentes
// na View
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.laudo_list_item, null);
// Estado - Abreviação
TextView textState = (TextView) view.findViewById(R.id.dado_1);
textState.setText(laudo.getClin_func_empr_exam_codigo() + " - "
+ laudo.getFunc_empr_nome() + " - " + laudo.getExam_nome());
// Capital
TextView textCapital = (TextView) view.findViewById(R.id.dado_2);
textCapital.setText(laudo.getClin_func_empr_exam_valor() + " ("
+ laudo.getClin_func_empr_exam_data_exame() + ")");
Log.i("CoNT",
"ID - " + laudo.getId() + " / "
+ laudo.getClin_func_empr_exam_codigo());
return view;
}
}
/********************************************************************************/
> LaudoDetalhes.java
package com.rober.clinica_laudo;
import com.rober.clinica_laudo.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class LaudoDetalhes extends Activity {
int idLaudo;
DBAdapter datasource;
Laudo laudo;
TextView edtNome;
TextView edtEmail;
TextView edtTelefone;
Button btVoltar;
Button btEliminar;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.detalhelaudo);
edtNome = (TextView) findViewById(R.lista.txtnome);
edtEmail = (TextView) findViewById(R.lista.txtEmail);
edtTelefone = (TextView) findViewById(R.lista.txtTelefone);
btEliminar = (Button) findViewById(R.id.btEliminar);
btVoltar = (Button) findViewById(R.lista.btmenu);
carregaDetalhesContacto();
btVoltar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
private void carregaDetalhesContacto() {
idLaudo = getIntent().getIntExtra("idLaudo", 0);
datasource = new DBAdapter(this);
datasource.open();
laudo = datasource.getLaudo(idLaudo);
datasource.close();
/*
* ivFoto.setImageBitmap(contacto.getFoto());
* edtNome.setText(contacto.getNome());
* edtEmail.setText(contacto.getEmail());
* edtTelefone.setText(contacto.getTelefone());
*/
}
}