Obrigado por responder Thiago, Então eu vi o erro mas pelo que entendi do erro e porta ele diz q a lista de contato esta fazia, correto? mas ela não esta eu criei 1 contato, inclusive ele mostra o contato no proprio app do emulador.
Att.
On Wednesday, February 10, 2016 at 8:10:44 AM UTC-4, Thiago Maia wrote:
-- Att.
On Wednesday, February 10, 2016 at 8:10:44 AM UTC-4, Thiago Maia wrote:
Attempt to invoke virtual method 'ArrayAdapter.getItem(int)' on a null object referencetá ai o erro.On Wed, Feb 10, 2016 at 12:24 AM, ricardo barbosa <ricardob...@yahoo.com.br> wrote:Pessoal, estou tentando criar um hello world que visualiza o contatos do celular, porém estou enfrentando um problema quando clico no contato ele gera um exception. Primeiro tive o problema de permissao da versao 6 (API level 23) que mudou e não e somente add a permissao no manifest porem o codigo abaixo compila, mas quando clico em 1 contato ele exibe a mensagem abaixo, alguem ja passou por isso? se alguém puder dar uma luz desde já agradeço.--
------------------ ExemploListaContatos1 --------------package corp.capsula.exemplolistacontatos1;
import android.Manifest;
import android.app.ListActivity;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ExemploListaContatos1 extends ListActivity {
private ArrayAdapter<String> adaptador;
protected static final String CATEGORIA = "TesteLog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
habilitaPermissao(Manifest.permission.READ_CONTACTS);
//uri para buscar contatos
Uri uri = ContactsContract.Contacts.CONTENT_URI ;
// Recupera o cursor dos contatos
Cursor c = getContentResolver().query(uri,null,null,null,null );
//utiliza o ArrayAdapter, para exibir o array de strings na tela.
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_ 1 );
//percorre os elementos do cursor, que sao contatos da agenda
while (c.moveToNext()) {
//le a coluna nome e adiciona no adapter
adaptador.add(c.getString(c.getColumnIndex( ContactsContract.Contacts.DISP LAY_NAME )));
}
//informa o adapter responsavel por exibir a lista do listActivity
setListAdapter(adaptador);
c.close();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//clicou em um item da lista
String s = (String) adaptador.getItem(position);
Toast.makeText(this, "Contato selecionado: " + s, Toast.LENGTH_SHORT).show();
}
protected boolean habilitaPermissao(String permissao) {
int REQUEST_PERMISSIONS_CODE = 0;
//Checa se existe permissao ou seja se o resultado é diferente de PERMISSION_GRANTED
if( ContextCompat.checkSelfPermission (this, permissao) != PackageManager.PERMISSION_GRANTED ){
if( ActivityCompat.shouldShowRequestPermissionRationale (this, permissao) ){
Toast.makeText(this, "É preciso a permission " + permissao + " para apresentação dos eventos locais.", Toast.LENGTH_SHORT).show();
Log.i(CATEGORIA, "É preciso a permission " + permissao + " para apresentação dos eventos locais.");
return true;
}
else{
ActivityCompat.requestPermissions (this, new String[]{permissao}, REQUEST_PERMISSIONS_CODE);
Log.i(CATEGORIA, "pedido de permissao solicitado");
return true;
}
}
else {
Log.i(CATEGORIA, "Permissao negada");
return false;
}
}
}
Log de erro
------------------------------------------------------------ --
02-10 03:20:27.455 2897-2897/? D/AndroidRuntime: Shutting down VM
02-10 03:20:27.455 2897-2897/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: corp.capsula. exemplolistacontatos1, PID: 2897
java.lang. NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.widget.ArrayAdapter. getItem(int)' on a null object reference
at corp.capsula. exemplolistacontatos1. ExemploListaContatos1. onListItemClick( ExemploListaContatos1.java:48)
at android.app.ListActivity$2. onItemClick(ListActivity.java: 319)
at android.widget.AdapterView. performItemClick(AdapterView. java:310)
at android.widget.AbsListView. performItemClick(AbsListView. java:1145)
at android.widget.AbsListView$ PerformClick.run(AbsListView. java:3042)
at android.widget.AbsListView$3. run(AbsListView.java:3879)
at android.os.Handler. handleCallback(Handler.java: 739)
at android.os.Handler. dispatchMessage(Handler.java: 95)
at android.os.Looper.loop(Looper. java:148)
at android.app.ActivityThread. main(ActivityThread.java:5417)
at java.lang.reflect.Method. invoke(Native Method)
at com.android.internal.os. ZygoteInit$ MethodAndArgsCaller.run( ZygoteInit.java:726)
at com.android.internal.os. ZygoteInit.main(ZygoteInit. java:616)
Att.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com .
For more options, visit https://groups.google.com/d/optout .
--
All it takes is one bad day to reduce the sanest man alive to lunacy.
That's how far the world is from where i am.
Just one bad day!
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário