Pegar texto do spinner [RESOLVIDO]

Ola a todos, tenho uma aplicação que busca todos os contatos que tenho e me retorna o nome em um spinner, e agora preciso pegar este nome que esta no spinner e não esta funcionando.

Codigo pra retornar os contatos…

	   public void pegaContatos(){
			String[] PROJECTION = new String[] {
		        People._ID, People.NAME
		    };

		    Uri contacts =  People.CONTENT_URI;
		    Spinner contactsSpinner = (Spinner) findViewById(R.id.sp_cliente);

		    Cursor contactsCursor = managedQuery(contacts,
		                             PROJECTION, // Which columns to return 
		                             null,       // Which rows to return (all rows)
		                             null,       // Selection arguments (none)
		                             // Put the results in ascending order by name
		                             People.NAME + " ASC");

		    SimpleCursorAdapter sca = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item,contactsCursor, new String[] {People.NAME}, new int[] {android.R.id.text1} );
		    sca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		    contactsSpinner.setAdapter(sca);
	   }

Codigo para tentar pegar o nome que esta no spinner(sp_cliente)

	     	spcliente = (Spinner) findViewById(R.id.sp_cliente);
	     	spcliente.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
	     	    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
	    			String nsvNome = spcliente.getSelectedItem().toString();
	     	    	Log.w("Cliente",nsvNome);
	     	    } 
	     	    public void onNothingSelected(AdapterView<?> adapterView) {
	     	        return;
	     	    } 
	     	});

No log aparece isto em vez do nome do contato…

01-03 17:23:32.069: W/Cliente(4271): android.content.ContentResolver$CursorWrapperInner@40539528

O primeiro int do metodo onItemSelected é a posição do item clicado,
esta posição é a mesma do contato gravado na Adapterlist usado na spinner.

creio que um sca.getItem(i) dentro do onItemSelected resolva

[quote=fabriciov]O primeiro int do metodo onItemSelected é a posição do item clicado,
esta posição é a mesma do contato gravado na Adapterlist usado na spinner.

creio que um sca.getItem(i) dentro do onItemSelected resolva
[/quote]

Erro:
sca cannot be resolved

declare na classe:

[quote=fabriciov]declare na classe:

Declarei a classe, mas…
01-04 10:34:08.779: E/AndroidRuntime(8082): FATAL EXCEPTION: main
01-04 10:34:08.779: E/AndroidRuntime(8082): java.lang.NullPointerException
01-04 10:34:08.779: E/AndroidRuntime(8082): at personal.tech.Atendimento$1.onItemSelected(Atendimento.java:70)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.widget.AdapterView.fireOnSelected(AdapterView.java:871)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.widget.AdapterView.access$200(AdapterView.java:42)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.os.Handler.handleCallback(Handler.java:587)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.os.Handler.dispatchMessage(Handler.java:92)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.os.Looper.loop(Looper.java:130)
01-04 10:34:08.779: E/AndroidRuntime(8082): at android.app.ActivityThread.main(ActivityThread.java:3835)
01-04 10:34:08.779: E/AndroidRuntime(8082): at java.lang.reflect.Method.invokeNative(Native Method)
01-04 10:34:08.779: E/AndroidRuntime(8082): at java.lang.reflect.Method.invoke(Method.java:507)
01-04 10:34:08.779: E/AndroidRuntime(8082): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
01-04 10:34:08.779: E/AndroidRuntime(8082): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
01-04 10:34:08.779: E/AndroidRuntime(8082): at dalvik.system.NativeStart.main(Native Method)

fabriciov, se tiver skype add ae:

marcianovc

Estou no trabalho, não tem skype aqui.

Estava pesquisando e por surpresa achei o exemplo que provavelmente você se baseou ( http://stackoverflow.com/questions/4070313/android-displaying-contact-names-in-a-spinner ),
há um comentário logo abaixo : Isso não é suportado em SDK 2.0+
e duvido que esteja trabalhando com versão inferior ao Ecclair ;p

Uma opção é fazer uma arraylist igual dos contatos e trabalhar sobre ela
aqui tem um exemplo de como fazer:
http://dev.schmid.pro/android/get-contacts-on-android-2-0

e não esqueça de adicionar a permissão no manifest, pelo menos eu sempre esqueço hehe

vo tenta aq , se der certo aviso ae blz…
obrigado por eqto…

[quote=marcianovc]vo tenta aq , se der certo aviso ae blz…
obrigado por eqto…[/quote]

Consegui resolver, segue o codigo:

[code] public void loadSpinnerClientes(){
List contatos = new ArrayList();
contatos.add(“Novo”);
try {
String[] PROJECTION = new String[] { Contacts._ID,
Contacts.DISPLAY_NAME, Phone.NUMBER };

		Cursor c = managedQuery(Phone.CONTENT_URI, PROJECTION, null, null, null);
		if (c.moveToFirst()) {
		String clsPhonename = null;
		String clsphoneNo = null;

		do {
		clsPhonename = c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME));
		clsphoneNo = c.getString(c.getColumnIndex(Phone.NUMBER));

		clsphoneNo.replaceAll("\\D","");
		clsPhonename = clsPhonename.replaceAll("&","");
		clsPhonename.replace("|","");
		String clsPhoneName = clsPhonename.replace("|", "");

		System.out.println(clsPhoneName);
		contatos.add(clsPhoneName);

		} while (c.moveToNext());
		}
		} catch (Exception e) {
		e.printStackTrace();
		}
	
	// Creating adapter for spinner
	ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, contatos);

	// Drop down layout style - list view with radio button
	dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

	// attaching data adapter to spinner
	spcliente.setAdapter(dataAdapter);
}[/code]

E para pegar o texto que estiver selecionado no spinner:

Resolvidooooo…

Poderia me ajudar, estou com dúvidas para utilizar o spinner.

Está mostrando assim: Preciso também que mostre o id do item que está no banco de dados, era pra mostrar 1 no id e está mostrando 0 e no nome o que está abaixo:

06-30 16:45:40.636: I/Nome selecionado no spinner(407): Nome: android.database.sqlite.SQLiteCursor@44f72570

		final Spinner spn = (Spinner) findViewById(R.id.spinner1);
		
    	String nomeString = Procurar.getText().toString();
    	Cursor cursor;	
		db.open();
	    cursor = db.getClientePorNome(nomeString);
	    cursor.moveToFirst();
	    
        SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor, 
                new String[] { DbAdapter.KEY_NOME }, 
                new int[] { android.R.id.text1 });             
        
        
        
        adaptador.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
       
        spn.setAdapter(adaptador);

        
        spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
				int index = parent.getSelectedItemPosition();
				final String vnome = parent.getSelectedItem().toString();  
				Log.i("Clicou no spinner", "Item: " +index);
				Log.i("Nome selecionado no spinner", "Nome: " +vnome);
				Toast.makeText(Lista.this, "ID Selecionado: " + index, Toast.LENGTH_LONG).show();
				Toast.makeText(Lista.this, "Nome: " + vnome, Toast.LENGTH_LONG).show();
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
		});
	    db.close();
 	}