根据所选名称过滤自动完整文本视图中的数据

时间:2013-10-14 07:02:48

标签: java android autocomplete

在我的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 

}

我想知道的是这些代码段的问题是什么?

提前完成。

0 个答案:

没有答案