連絡先を表示するリストビューがあります。これは、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();
}
}
});
}
質問
名前が空白のときにリストビューに「名前のない顧客」と表示させる最もクリーンで効率的な方法は何ですか? (データベースにそのまま保存せずに)