0

連絡先を表示するリストビューがあります。これは、SimpleCursorAdapter. リストビューに表示されるのは連絡先の名前です。連絡先に名前がない場合、リストビュー項目は表示されますが、テキストは表示されず、空白行が表示されてユーザーを混乱させます。

このメソッドを使用して、データベースから連絡先のリストを取得します。

public static List<Customer> getcustomerList()
        {
            try
            {
                List<Customer> customerList = new ArrayList<Customer>();
                Cursor cursor = getAllCustomers();
                if (cursor.moveToFirst()) {
                    do {
                        Customer cust = new Customer();
                        cust.customerId = UUID.fromString(cursor.getString(0));
                        cust.firstName = cursor.getString(1);
                        cust.lastName = cursor.getString(2);
                        customerList.add(cust);
                    } while (cursor.moveToNext());
                }
                return customerList;
            }
            catch (Exception ex)
            {
                ex.printStackTrace();
                return null;
            }
        }

ここで私の活動から呼び出されます:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cust_list);
        // Show the Up button in the action bar.
        setupActionBar();
        populateListView();
    }

private void populateListView() {
        Cursor cursor = Db.Functions.getCustomerList();
        String[] cols = new String[] {
                "Name", "MobileNumber" };
        int[] to = new int[] {
                R.id.lblCustName, R.id.lblNumber };
        adapter = new SimpleCursorAdapter(
                this, R.layout.customer_info, cursor, cols, to, 0);
        ListView listView = (ListView) findViewById(R.id.custlist);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
                try
                {
                    // Called when an individual item is pressed on customer list
                    Gen.vib(CustomApp.app, 15);
                    Cursor searchCursor = (Cursor) listView.getItemAtPosition(position);
                    String idString = searchCursor.getString(searchCursor.getColumnIndexOrThrow("_id"));
                    Intent intent = new Intent(CustomApp.app, ViewCustomerActivity.class);
                    intent.putExtra("uuid", idString);
                    startActivityForResult(intent, CODE_VIEWCUSTOMER);
                }
                catch (Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        });
    }

質問

名前が空白のときにリストビューに「名前のない顧客」と表示させる最もクリーンで効率的な方法は何ですか? (データベースにそのまま保存せずに)

4

1 に答える 1