0

在我的主要活动课程中,我有以下代码:

    DatabaseHandler db;
    List<Contact> contactList;
    ArrayAdapter<Contact> adapter;

onCreate 方法中包含以下内容:

        db = new DatabaseHandler(this);

        contactList = db.getAllContacts();
        adapter = new ArrayAdapter<Contact>(this,
                R.layout.home_screen_contacts_view, contactList);
        contactsView.setAdapter(adapter);

现在我的 ListView (即contactsView)以我在类中的toString()方法中指定的方式显示联系人,如下所示:Contact

public String toString() {
        return _id + ". " + firstName + " " + lastName;
}

这是我的问题:我希望用户能够设置他/她希望列表视图中的联系人显示的方式。例如,而不是id + firstname + lastname也许他们想要lastName + firstName。那么我该如何实现这一点。我需要两种toString()方法吗?我不确定。任何帮助,将不胜感激。

4

1 回答 1

0

也许您可以添加另一个变量来指示用户想要使用的格式(SharedPreferences也许保存它?),然后toString()像这样使用它:

public static int FORMAT_TYPE = 0; // format to use

private String displayToUI(){
    switch(FORMAT_TYPE){
        case 0: // default
            return _id + ". " + firstName + " " + lastName;
        case 1: // custom user preference
            return lastName + firstName;
    }
}

public String toString() {
    return displayToUI();
}
于 2013-10-03T00:41:14.477 回答