Tema: [ SOLUCIONADO ] NullPointerException......
Ver Mensaje Individual
  #1  
Viejo 15/03/12, 15:23:23
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
NullPointerException......

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)

Última edición por monchyrcg Día 15/03/12 a las 16:05:22
Responder Con Cita