Pessoal mais uma vez estou com duvidas aqui.
Fiz esta classe que traz todos os dados da minha tabela num listview
[code]public class ListaItensProdutosActivity extends Activity {
private TextView codigo;
private TextView nome;
private ProgressDialog dialog;
private Handler handler = new Handler();
private ListView listItens;
protected ProgressDialog progressDialog = null;
private List<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();
@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_itens_produtos);
listItens = (ListView) findViewById(R.id.listaItensProdutos);
buscaItensProdutos();
listItens.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
codigo = (TextView) v.findViewById(android.R.id.text2);
nome = (TextView) v.findViewById(android.R.id.text1);
String concatenaCodigoNome = codigo.getText().toString()
+ " - " + nome.getText().toString();
if (concatenaCodigoNome.length() > 0) {
VendaClienteActivity.edtItem.setText(concatenaCodigoNome);
VendaClienteActivity.edtQuantidade
.setFocusableInTouchMode(true);
VendaClienteActivity.edtQuantidade.requestFocus();
VendaClienteActivity.btTelaLetras.setEnabled(false);
VendaClienteActivity.flLetras.setVisibility(View.INVISIBLE);
VendaClienteActivity.flNumeros.setVisibility(View.VISIBLE);
// pesquisa o valor do produto
pesquisarValorProduto();
VendaClienteActivity.edtItem.clearFocus();
VendaClienteActivity.edtItem.setFocusableInTouchMode(false);
finish();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.lista_itens_produtos, menu);
return true;
}
// busca parte do cliente
public void buscaItensProdutos() {
dialog = ProgressDialog.show(ListaItensProdutosActivity.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
dataList.clear();
try {
ds = serv.ConsultaItens(VendaClienteActivity.edtItem
.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());
dataList.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(ListaItensProdutosActivity.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));
if (listItens == null) {
Toast.makeText(ListaItensProdutosActivity.this,
"Não foi encontrado dados nesta busca.",
Toast.LENGTH_LONG).show();
finish();
}
}
private DSRESTConnection getConnection() {
DSRESTConnection conn = new DSRESTConnection();
conn.setHost(MainActivity.ip);
String portaServXE = "23" + Integer.toString(MainActivity.porta);
conn.setPort(Integer.parseInt(portaServXE)); // MainActivity.porta
return conn;
}
private void pesquisarValorProduto() {
DSRESTConnection conn = getConnection();
TServerMethods1 serv = new TServerMethods1(conn);
try {
GetPrecoVenda_ProdutoReturns ret;
// Toast.makeText(ListaItensProdutosActivity.this, codigo,
// Toast.LENGTH_LONG).show();
ret = serv.GetPrecoVenda_Produto(codigo.getText().toString()); // manda
// o
// valor
// do codigo
// auxiliar para
// busca no
// select
// carrega o edit com o resultado do select
VendaClienteActivity.tvValorUnitario.setText(String.format(
"R$ %.2f", ret.PrecoVenda));
// recebe o valor unitário
VendaClienteActivity.vlUnitario = ret.PrecoVenda;
// o valor total recebe o valor unitário
VendaClienteActivity.vlValorTotal = ret.PrecoVenda;
finalizaDialogo(false, "");
} catch (Exception e) {
finalizaDialogo(true, e.toString());
}
}
}[/code]
No androidManifest.xml o thema desta tela é assim
<activity
android:name=".ListaItensProdutosActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog" >
</activity>
Meu problema é quando o retorno desta consulta não tiver dados dentro do listview, como faço para mandar uma mensagem em vez de retornar esta tela vazia?
Obrigado.