Obter dados de um listview e mandar para um edittext? [RESOLVIDO]

1 resposta
A

Pessoal tenho um listview que traz os dados de uma tabela, até ai tudo bem, minha dificuldade é pegar o registro selecionado e mandar para outra tela dentro de um edittext

a classe que traz os valores no seu listview
import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.embarcadero.javaandroid.DSProxy.TServerMethods1;
import com.embarcadero.javaandroid.DSRESTConnection;
import com.embarcadero.javaandroid.TDataSet;

public class ListaClientesActivity extends Activity {

	private ProgressDialog dialog;
	private Handler handler = new Handler();
	private ListView listItens;
	protected ProgressDialog progressDialog = null;
	private ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.lista_clientes);

		listItens = (ListView) findViewById(R.id.listaClientes);
		buscaClientes();

		listItens.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// não sei como fazer
			}
		});

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.lista_clientes, menu);
		return true;
	}

	// busca parte do cliente
	public void buscaClientes() {
		dialog = ProgressDialog.show(ListaClientesActivity.this, "Aguarde...",
				"Pesquisando registros");

		new Thread() {
			@Override
			public void run() {
				DSRESTConnection conn = getConnection();
				TServerMethods1 serv = new TServerMethods1(conn);

				TDataSet ds;
				// limpa a lista a cada pesquisa
				list.clear();
				try {
					ds = serv
							.ConsultaDadosCliente(VendaClienteActivity.edtCliente
									.getText().toString());
					while (ds.next()) {
						HashMap<String, String> item = new HashMap<String, String>();
						item.put("nome", ds.getValue("NOME").GetAsString());
						item.put("id", ds.getValue("CODIGO").GetAsString());
						list.add(item);
					}

					finalizaDialogo(false, "");

				} catch (Exception e) {
					finalizaDialogo(true, e.toString());
				}
			}

		}.start();

	}

	private void finalizaDialogo(final boolean temErro, final String msg) {
		handler.post(new Runnable() {

			@Override
			public void run() {
				if (temErro)
					Toast.makeText(ListaClientesActivity.this, msg,
							Toast.LENGTH_LONG).show();
				else
					AtualizarTela();
				// finaliar o dialogo
				dialog.dismiss();
			}
		});
	}

	private void AtualizarTela() {
		String[] from = new String[] { "nome", "id" };
		int[] to = new int[] { android.R.id.text1, android.R.id.text2 };
		int layoutNativo = android.R.layout.two_line_list_item;

		listItens.setAdapter(new SimpleAdapter(this, list, layoutNativo, from,
				to));

	}

	private DSRESTConnection getConnection() {
		DSRESTConnection conn = new DSRESTConnection();
		conn.setHost(MainActivity.ip);
		conn.setPort(1032);

		return conn;
	}

}

Ja tentei de varias formas que vi como exemplo na net, mais não consegui ...

A lista é esta aqui
[img]http://666kb.com/i/caf91c5pv41vesigy.png[/img]

Tenho que mandar para a outra tela o ID e o Nome da pessoa concatenando dentro do edittext que vai receber.

1 Resposta

A

Resolvido

listItens.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { TextView texto = (TextView) v.findViewById(android.R.id.text1); Toast.makeText(ListaClientesActivity.this, texto.getText().toString(), Toast.LENGTH_LONG).show(); } });

Criado 5 de janeiro de 2013
Ultima resposta 5 de jan. de 2013
Respostas 1
Participantes 1