[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("SimpleDateFormat")
@Override
public void onItemClick(AdapterView<?> 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("-");
gCodigoClie = idClie[0].trim();
// captura Id profissional
String idCharIdProf = edProfissionalEx.getText().toString()
.trim();
String[] idProf = idCharIdProf.split("-");
gCodigoProf = idProf[0].trim();
// passa o item (Produto ou Servico para variavel)
String idCharItem = fullObject.getServico_produto().trim();
String[] idItem = idCharItem.split(":");
gTipoItem = idItem[1].trim();
// passa a datahora para variavel
String idCharDataHora = fullObject.getData_hora().trim();
String[] idDataHora = idCharDataHora.split("-Data/Hora:");
gDataHora = idDataHora[1];
Date data = new Date();
try {
data = new SimpleDateFormat("dd/MM/yyyy HH:mm")
.parse(gDataHora);
} catch (ParseException e) {
// gera uma excessão se der erro
e.printStackTrace();
}
gDataHora = new SimpleDateFormat("yyyy-MM-dd HH:mm")
.format(data);
// codigo do item
String idCharCodigoItem = fullObject.getNome_sv_pd().trim();
String[] idCodigoItem = idCharCodigoItem.split("-");
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("-");
gOperador = idNomeProf[1].trim();
// quantidade do item
// codigo do item
String idCharQuantItem = fullObject.getQuantidade().trim();
String[] idQuantItem = idCharQuantItem.split(":");
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.