在我的 android 应用程序中,有一个功能可以过滤关于所选客户代码的数据。应用程序具有自动完成文本视图。用户可以选择特定的客户。然后系统根据选择的客户代码过滤数据。如果用户没有选择客户,则系统应显示所有客户详细信息。
第一次如果我不选择特定客户,它会显示所有客户详细信息。然后我选择一个特定的客户,然后它显示有关所选客户的数据。但这种情况正在发生一次。第二次如果我不选择客户,那么它不会显示所有客户详细信息。它仅显示前一个选定客户的数据。这意味着如果我第二次选择特定客户,系统不会将 selectedCusCode 从旧 cusCode 更改为新 cusCode。为什么会这样?
以下是我的尝试。
ArrayAdapter<String> cusAdapter = new ArrayAdapter<String>(this, R.layout.list_item, lstCustName);
cusName.setAdapter(cusAdapter);
cusName.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View arg1, int arg2,long arg3) {
selectedCusName = parent.getItemAtPosition(arg2).toString();
if(selectedCusName.equals(null)){
selectedCusCode = "--Select--";
} else {
selectedCusCode = customerMap.get(selectedCusName);
}
}
});
这里 customerMap 包含所有的客户代码和客户名称。
选择客户后,用户应单击一个按钮,然后根据所选客户显示数据。
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnList:
callArchivement();
}
}
private void callArchivement(){
SelectDBAdapter selectDBAdapter = SelectDBAdapter.getDBAdapterInstance(CustomerActivity.this);
try {
selectDBAdapter.openDataBase();
orderDetails = selectDBAdapter.getOrderDetails(selectedCusCode);
} catch (Exception e) {
selectDBAdapter.close();
e.printStackTrace();
}finally{
selectDBAdapter.close();
}
CustomerTable.removeAllViews();
loadTableLayouts(); //details are displaying in a table
}
我想知道的是这些代码段有什么问题?
提前谢谢。