Y ahora esto!!!!
Código:
mport android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class AgendaActivity extends Activity {
/** Called when the activity is first created. */
private Agenda [] numeros;
private ListView lista;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lista = (ListView)findViewById(R.id.lista);
rellenarAgenda();
AdaptadorTitulares adaptador = new AdaptadorTitulares (this);
lista.setAdapter(adaptador);
registerForContextMenu(lista);
}
static class ViewHolder {
TextView nombre;
TextView telefono;
}
@SuppressWarnings("rawtypes")
class AdaptadorTitulares extends ArrayAdapter{
Activity context;
@SuppressWarnings("unchecked")
AdaptadorTitulares (Activity context){
super(context, R.layout.list_layout,numeros);
this.context=context;
}
public View getView(int position, View convertView, ViewGroup parent){
View item = convertView;
ViewHolder holder;
if(item == null){
LayoutInflater inflater = context.getLayoutInflater();
item = inflater.inflate(R.layout.list_layout, null);
holder = new ViewHolder();
holder.nombre = (TextView) item.findViewById(R.id.nombre);
holder.telefono = (TextView) item.findViewById(R.id.telefono);
item.setTag(holder);
}
else{
holder = (ViewHolder)item.getTag();
}
holder.nombre.setText(numeros[position].getNombre());
holder.telefono.setText(numeros[position].getTelefono());
return item;
}
}
public void rellenarAgenda(){
ContentResolver cr = getContentResolver();
Uri uri = ContactsContract.Contacts.CONTENT_URI;
Cursor cur = cr.query(uri,null, null, null, null);
numeros = new Agenda[cur.getCount()];
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
int i =0;
numeros[i] = new Agenda();
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",new String[]{id}, null);
while (pCur.moveToNext()) {
String telefono = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
numeros[i].setNombre(name);
numeros[i].setTelefono(telefono);
}
pCur.close();
}
i++;
}
}
}
}
Bueno pues este código tan sencillo me da una NullPointer... en estas dos lineas
Código:
holder.nombre.setText(numeros[position].getNombre());
holder.telefono.setText(numeros[position].getTelefono());
No entiendo el porque, por favor un poco de ayuda
(Para quien se pregunte porque tantos problemas y de cosas tan diversas es porque llevo varias cosas encima con proyectos básicos, para aprender el manejo de las cosas que necesito para un proyecto más grande)