Acceder

Ver la Versión Completa : listview


loadgo
01/09/14, 21:35:52
Buenas tengo el siguiente codigo que recoje datos de el telefono via content providers y me gustaria como meter el resultado en un list view y si me pudierais explicar como lo habeis hecho.

Muchas gracias



import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CallLog;
import android.widget.TextView;


public class MyActivity extends Activity {

TextView txtResultados;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);

txtResultados = (TextView)findViewById(R.id.tvResultado);

//Creamos el array con los datos que queremos extraer
String[] projection = new String[] {
CallLog.Calls.TYPE,
CallLog.Calls.NUMBER,
CallLog.Calls.DURATION };

//Creamos el Uri
Uri llamadasUri = CallLog.Calls.CONTENT_URI;


ContentResolver cr = getContentResolver();

Cursor cur = cr.query(llamadasUri,
projection, //Columnas a devolver
null, //Condición de la query
null, //Argumentos variables de la query
null); //Orden de los resultados

if (cur.moveToFirst())
{
//Variable para controlar el tipo de llamada y el num de telf
int tipo;
String telefono;
String duracion;
//Variable para decir que tipo de llamada es
String tipoLlamada = "";

// Obtenemos los índices de las columnas
int colTipo = cur.getColumnIndex(CallLog.Calls.TYPE);
int colTelefono = cur.getColumnIndex(CallLog.Calls.NUMBER);
int colDuracion = cur.getColumnIndex(CallLog.Calls.DURATION);

txtResultados.setText("");

do
{
//ASignamos el indice de las columnas a las variables
tipo = cur.getInt(colTipo);
telefono = cur.getString(colTelefono);
duracion = cur.getString(colDuracion);

//Dependiendo del tipo de calllog que sae un texto comprensible
if(tipo == CallLog.Calls.INCOMING_TYPE)
tipoLlamada = "ENTRADA";
else if(tipo == CallLog.Calls.OUTGOING_TYPE)
tipoLlamada = "SALIDA";
else if(tipo == CallLog.Calls.MISSED_TYPE)
tipoLlamada = "PERDIDA";

//Mostramos el resultado dentro de txtResultados
txtResultados.append(tipoLlamada + " - " + telefono + duracion + "\n");

//Pasamos al siguiente dato
} while (cur.moveToNext());
}
}

}