Como um método recber parametro de locais distintos?

8 respostas
A

Pessoal como faço para em vez de trazer o parametro fixo, como o exemplo ai.

este metodo receber o parametro do onde eu chamar esta classe. Em locais distintos. Tem esta possinbilidade?

Pois alem desta activity VendaProfissionalActivity, também quero passar o valor do parametro para este método de outras activity.

Obrigado.

8 Respostas

charleston10

nao entendi nada…

A

charleston10:
adriano_servitec:

este metodo receber o parametro do onde eu chamar esta classe. Em locais distintos. Tem esta possinbilidade?

nao entendi nada…

Seguente tenho uma classe que chama este método passando um parametro para ele, no caso ai estou passando.
VendaProfissionalActivity.edtProfissional.getText().toString() o que esta escrito neste edittext.

Só que quero chamar este método ai desta classe em outra activity também
VendaClienteActivity.edtProfissional.getText().toString()

Só que ai tenho que mudar o parametro den entrada para o metodo ConsultaDadosProfissional(parametro);

Chamo esta classe assim

Ai abre um listview com alguns dados dentro da lista, conforme o que eu digito no edittext da classe que chamei esta classe.

Espero que tenha entendido.

Obrigado.

Filipe_A

adriano_servitec:
charleston10:
adriano_servitec:

este metodo receber o parametro do onde eu chamar esta classe. Em locais distintos. Tem esta possinbilidade?

nao entendi nada…

Seguente tenho uma classe que chama este método passando um parametro para ele, no caso ai estou passando.
VendaProfissionalActivity.edtProfissional.getText().toString() o que esta escrito neste edittext.

Só que quero chamar este método ai desta classe em outra activity também
VendaClienteActivity.edtProfissional.getText().toString()

Só que ai tenho que mudar o parametro den entrada para o metodo ConsultaDadosProfissional(parametro);

Chamo esta classe assim

Ai abre um listview com alguns dados dentro da lista, conforme o que eu digito no edittext da classe que chamei esta classe.

Espero que tenha entendido.

Obrigado.

Bom dia adriano,

Poderia colocar mais partes do seu código pra visualizarmos o quê você está tentando fazer como um todo?

abs

A

Se entendi o que você perguntou, a resposta é sim, adriano_servitec.
Mas, como os colegas questionaram, depende.
Se a questão for chamar um método em diferentes lugares com parametros de diferentes origens, a resposta é em princípio sim.
Abraço

A
Então pessoal, a classe é esta
public class ListaPProfissionaisActivity 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 ProfissionaisCadastro pc = new ProfissionaisCadastro();

	@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_pprofissionais);

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

		listItens = (ListView) findViewById(R.id.listaPProfissionais);
		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();
				if (concatenaCodigoNome.length() > 0) {
					VendaProfissionalActivity.edtProfissional
							.setText(concatenaCodigoNome);
					// Entra no proximo focus
					VendaProfissionalActivity.edtAuxiliar
							.setFocusableInTouchMode(true);
					VendaProfissionalActivity.edtAuxiliar.requestFocus();
					VendaProfissionalActivity.dadosProfissional
							.setBackgroundColor(Color.TRANSPARENT);
					// seta o frame do teclado que vai ficar visivel
					VendaProfissionalActivity.flLetras
							.setVisibility(View.INVISIBLE);
					VendaProfissionalActivity.flNumeros
							.setVisibility(View.VISIBLE);
					VendaProfissionalActivity.btTelaLetras.setEnabled(false);

					VendaProfissionalActivity.spTipoVendas
							.setBackgroundColor(Color.parseColor("#6495ED"));
					VendaProfissionalActivity.buttonDisable();
					VendaProfissionalActivity.edtProfissional.clearFocus();
					VendaProfissionalActivity.edtProfissional
							.setFocusableInTouchMode(false);
					finish();
				}
			}
		});
	}

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

	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(VendaProfissionalActivity.edtProfissional
									.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(ListaPProfissionaisActivity.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));
	}

}

Se repararem esta toda amarrada com a classe VendaProfissionalActivity

Queria ao chamar esta classe de outra activity mandar os valores daquela activity

Aqui to passando um parametro de entrada na função
ds = serv
							.ConsultaDadosProfissional(VendaProfissionalActivity.edtProfissional
									.getText().toString());

E aqui recebendo parametros de saída na activity que chamou esta classe.

if (concatenaCodigoNome.length() > 0) {
					VendaProfissionalActivity.edtProfissional
							.setText(concatenaCodigoNome);
					// Entra no proximo focus
					VendaProfissionalActivity.edtAuxiliar
							.setFocusableInTouchMode(true);
					VendaProfissionalActivity.edtAuxiliar.requestFocus();
					VendaProfissionalActivity.dadosProfissional
							.setBackgroundColor(Color.TRANSPARENT);
					// seta o frame do teclado que vai ficar visivel
					VendaProfissionalActivity.flLetras
							.setVisibility(View.INVISIBLE);
					VendaProfissionalActivity.flNumeros
							.setVisibility(View.VISIBLE);
					VendaProfissionalActivity.btTelaLetras.setEnabled(false);

					VendaProfissionalActivity.spTipoVendas
							.setBackgroundColor(Color.parseColor("#6495ED"));
					VendaProfissionalActivity.buttonDisable();
					VendaProfissionalActivity.edtProfissional.clearFocus();
					VendaProfissionalActivity.edtProfissional
							.setFocusableInTouchMode(false);
					finish();

Mais neste caso ai só posso usar nesta classe, o que eu gostaria é que esta classe ai fosse generica que pudesse receber o parametro de entrada que eu passar e retornar os parametros de saida depois de processado para a activity que chamei a classe.

Entenderam?

A

Neste caso ai estou usando esta classe apenas para um proposito, mais amarrei ela no VendaProfissionalActivity

Se não tiver uma forma de deixar isso livre terei que criar um clone desta classe ai para usar com outra activity.

Obrigado.

R

Cara pelo que eu entendi vc tá querendo passar parametros de uma activity para outra activity.
Se for isso vc pode passar isso na Intent e chamar esses dados no Bundle que vc recebe. Olha esse tutorial:http://www.vogella.com/articles/AndroidIntent/article.html

A

Ramon Pires:
Cara pelo que eu entendi vc tá querendo passar parametros de uma activity para outra activity.
Se for isso vc pode passar isso na Intent e chamar esses dados no Bundle que vc recebe. Olha esse tutorial:http://www.vogella.com/articles/AndroidIntent/article.html
Obrigado, vou dar uma olhada.

Criado 13 de janeiro de 2013
Ultima resposta 15 de jan. de 2013
Respostas 8
Participantes 5