O método startActivityForResult()?

Bom dia, não manjo quase nada no java, e estou tentando usar o método startActivityForResult() da seguite forma

Tenho aqui na mesma classe ExclusaoVendas um método atualizaLista() que preciso executar logo após o uso do Intent que chama uma outra classe ListaProfissionaisExclusaoActivity

Intent intent = new Intent(this, ListaProfissionaisExclusaoActivity.class); ((Activity) this).startActivityForResult(intent, TELA_EXCLUSAO);

[code]// Método de retorno do método startActivityForResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

	// Código enviado
	if (resultCode == Activity.RESULT_OK && requestCode == TELA_EXCLUSAO) {
		Toast.makeText(ExclusaoVendasActivity.this, "Passou aqui",
				Toast.LENGTH_LONG).show();			
		atualizaLista();
	}
}[/code]

A idéia seria executar este método atualizaLista() que fica na mesma classe ExclusaoVendasActivity logo apos voltar da outra activity ListaProfissionaisExclusaoActivity, mais não estou conseguindo fazer isso funcionar, alguém pode me ajudar? E não sei ao certo se estou no caminho certo para fazer o que preciso. Pois nem passa no Toast que coloquei ali pra ver se esta entrando neste método onActivityRestult

Obrigado.

Bom, o problema pode estar na condicional IF, o que me leva a pensar que tua classe ListaProfissionaisExclusaoActivity.class não esteja executando os procedimentos necessarios para retornar alguma coisa. Talves se tu colasse o codigo da classe ListaProfissionaisExclusaoActivity.class aqui, ficaria mais fácil.

E outra, qual o objetivo da classe? Que tipo de dados ela deve retornar?

[quote=kmunga]Bom, o problema pode estar na condicional IF, o que me leva a pensar que tua classe ListaProfissionaisExclusaoActivity.class não esteja executando os procedimentos necessarios para retornar alguma coisa. Talves se tu colasse o codigo da classe ListaProfissionaisExclusaoActivity.class aqui, ficaria mais fácil.

E outra, qual o objetivo da classe? Que tipo de dados ela deve retornar?

[/quote]Primeiramente obrigado por ajudar.

Então a classe ListaProfissionaisExclusaoActivity deve retornar o nome do profissional e o ID que fica populado num listview

A classe é esta

public class ListaProfissionaisExclusaoActivity extends Activity {

	private ProgressDialog dialog;
	private Handler handler = new Handler();
	private ListView listItens;
	private Button btnClose;
	protected ProgressDialog progressDialog = null;
	private List<HashMap><String, String>> dataList = new ArrayList<HashMap><String, String>>();
	private GetConnection gc = new GetConnection();
	private MyTools custToast = new MyTools();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
		this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
		this.getWindow().clearFlags(
				WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

		setContentView(R.layout.lista_profissionais_exclusao);

		btnClose = (Button) findViewById(R.id.btnClose);
		btnClose.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				finish();
			}
		});

		listItens = (ListView) findViewById(R.id.listaProfissionaisExclusao);
		pesquisarProfissionais();

		listItens.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> a, View v, int position,
					long id) {
				TextView codigo = (TextView) v.findViewById(android.R.id.text2);

				TextView nome = (TextView) v.findViewById(android.R.id.text1);
				String concatenaCodigoNome;
				concatenaCodigoNome = codigo.getText().toString() + " - "
						+ nome.getText().toString();
				// Toast.makeText(ListaClientesActivity.this,
				// concatenaCodigoNome,
				// Toast.LENGTH_LONG).show();

				if (concatenaCodigoNome.length() > 0) {
					ExclusaoVendasActivity.edProfissionalEx
							.setText(concatenaCodigoNome);

					// se não tiver senha então não executa nada no edit senha
					if (ExclusaoVendasActivity.verificaSenha().equals("")) {
						ExclusaoVendasActivity.txsenhaprofissional
								.setEnabled(false);
						ExclusaoVendasActivity.edSenhaProfissionalEx
								.setEnabled(false);					
						ExclusaoVendasActivity.edAuxiliarEx
								.setFocusableInTouchMode(true);
						ExclusaoVendasActivity.edAuxiliarEx.requestFocus();
						//Toast customizado
						custToast.customToast(ListaProfissionaisExclusaoActivity.this,
								"Clique no botão CONFIRMA para executar.");
					} else {
						ExclusaoVendasActivity.txsenhaprofissional
								.setEnabled(true);
						ExclusaoVendasActivity.edSenhaProfissionalEx
								.setEnabled(true);
						// Entra no proximo focus
						ExclusaoVendasActivity.edSenhaProfissionalEx
								.setFocusableInTouchMode(true);
						ExclusaoVendasActivity.edSenhaProfissionalEx
								.requestFocus();										
						ExclusaoVendasActivity.edProfissionalEx.hasFocus();
						ExclusaoVendasActivity.edProfissionalEx
								.setFocusableInTouchMode(false);
					}
					finish();					
				}
			}
		});
	}

	private void pesquisarProfissionais() {
		dialog = ProgressDialog.show(this, "Aguarde...",
				"Pesquisando registros.", false, true);
		dialog.setIcon(R.drawable.ic_launcher);
		dialog.setCancelable(false);

		DSRESTConnection conn = gc.getConnection();
		final TServerMethods1 serv = new TServerMethods1(conn);

		new AsyncTask<Void, Void, Void>() {

			@Override
			protected Void doInBackground(Void... params) {
				try {
					TDataSet ds;
					// limpa a lista a cada pesquisa
					dataList.clear();
					ds = serv
							.ConsultaDadosProfissional(ExclusaoVendasActivity.edProfissionalEx
									.getText().toString());
					while (ds.next()) {
						HashMap<String, String> item = new HashMap<String, String>();
						item.put("nome", ds.getValue("APELIDO").GetAsString());
						item.put("id", ds.getValue("CODIGO").GetAsString());
						dataList.add(item);
					}
					// desabilita o dialog
					dialog.dismiss();
					finalizaDialogo(false, "");

				} catch (Exception e) {// desabilita o dialog
					dialog.dismiss();
					finalizaDialogo(true, e.toString());
				}
				return null;
			}
		}.execute();
	}

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

			@Override
			public void run() {
				if (temErro)
					Toast.makeText(ListaProfissionaisExclusaoActivity.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, dataList, layoutNativo,
				from, to));
	}

}

Como não sei uma forma de não chamar a activity diretamente nesta classe então coloquei o nome da outra activity ExclusaoVendasActivity destro desta classe, e esta fazendo o que precisa ser feito corretamente…

[code]if (concatenaCodigoNome.length() > 0) {
ExclusaoVendasActivity.edProfissionalEx
.setText(concatenaCodigoNome);

				// se não tiver senha então não executa nada no edit senha
				if (ExclusaoVendasActivity.verificaSenha().equals("")) {
					ExclusaoVendasActivity.txsenhaprofissional
							.setEnabled(false);
					ExclusaoVendasActivity.edSenhaProfissionalEx
							.setEnabled(false);					
					ExclusaoVendasActivity.edAuxiliarEx
							.setFocusableInTouchMode(true);
					ExclusaoVendasActivity.edAuxiliarEx.requestFocus();
					//Toast customizado
					custToast.customToast(ListaProfissionaisExclusaoActivity.this,
							"Clique no botão CONFIRMA para executar.");
				} else {
					ExclusaoVendasActivity.txsenhaprofissional
							.setEnabled(true);
					ExclusaoVendasActivity.edSenhaProfissionalEx
							.setEnabled(true);
					// Entra no proximo focus
					ExclusaoVendasActivity.edSenhaProfissionalEx
							.setFocusableInTouchMode(true);
					ExclusaoVendasActivity.edSenhaProfissionalEx
							.requestFocus();										
					ExclusaoVendasActivity.edProfissionalEx.hasFocus();
					ExclusaoVendasActivity.edProfissionalEx
							.setFocusableInTouchMode(false);
				}[/code]

Só que depois do finish() ai desta classe volta para a classe ExclusaoVendasActivity e aqui tenho um método que gostaria de executar depois que retornar para o ExclusaoVendasActivity

o método é este

[code]private void atualizaLista() {
ArrayList<ExclusaoVendasBusca> searchResults = GetSearchResults();
lv1.setAdapter(new ExclusaoVendasAdapter(this, searchResults));

	lv1.setOnItemClickListener(new OnItemClickListener() {
		@SuppressLint(&quot;SimpleDateFormat&quot;)
		@Override
		public void onItemClick(AdapterView&lt;?&gt; a, View v, int position,
				long id) {
			Object o = lv1.getItemAtPosition(position);
			ExclusaoVendasBusca fullObject = (ExclusaoVendasBusca) o;

			// captura Id cliente
			String idCharIdClie = edClienteEx.getText().toString().trim();
			String[] idClie = idCharIdClie.split(&quot;-&quot;);
			gCodigoClie = idClie[0].trim();

			// captura Id profissional
			String idCharIdProf = edProfissionalEx.getText().toString()
					.trim();
			String[] idProf = idCharIdProf.split(&quot;-&quot;);
			gCodigoProf = idProf[0].trim();

			// passa o item (Produto ou Servico para variavel)
			String idCharItem = fullObject.getServico_produto().trim();
			String[] idItem = idCharItem.split(&quot;:&quot;);
			gTipoItem = idItem[1].trim();

			// passa a datahora para variavel
			String idCharDataHora = fullObject.getData_hora().trim();
			String[] idDataHora = idCharDataHora.split(&quot;-Data/Hora:&quot;);
			gDataHora = idDataHora[1];
			Date data = new Date();
			try {
				data = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm&quot;)
						.parse(gDataHora);
			} catch (ParseException e) {
				// gera uma excessão se der erro
				e.printStackTrace();
			}
			gDataHora = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm&quot;)
					.format(data);

			// codigo do item
			String idCharCodigoItem = fullObject.getNome_sv_pd().trim();
			String[] idCodigoItem = idCharCodigoItem.split(&quot;-&quot;);
			gCodigo = idCodigoItem[0].trim();

			// Generatos que popula o estoque
			GeneratorsEstoque ge = new GeneratorsEstoque();
			gCodigoOperacao = ge.novoIDEstoque();

			// nome do profissional
			String idCharNomeProf = fullObject.getNome_profissional()
					.trim();
			String[] idNomeProf = idCharNomeProf.split(&quot;-&quot;);
			gOperador = idNomeProf[1].trim();

			// quantidade do item
			// codigo do item
			String idCharQuantItem = fullObject.getQuantidade().trim();
			String[] idQuantItem = idCharQuantItem.split(&quot;:&quot;);
			gQuantidadeMovimentada = idQuantItem[1].trim();

			confirmacaoExcluir();

		}
	});
}[/code]

Vou tentar mostrar em imagens
Primeiro eu chamo a classe ListaProfissionaisExclusaoActivity com o Intent

Depois que eu seleciono o profissional e seu ID eu retorno para a activity Exclusão de Vendas

Observe que tenho um listview logo abaixo de ITENS CONSUMIDO

Só que não estou conseguindo mostrar esta lista logo após trazer no edit PROFISSIONAL, somente consigo mostrar este item se apertar no button CONFIMAR pois neste botão executo o método atualizaLista().

Espero ter explicado corretamente para ver se existe uma forma de fazer isso logo apos executar a lista de busca do profissional, pois não posso simplesmente chamar este método logo apos retornar para a classe ExclusaoVendasActivity.

Obrigado.