0

我一直在为 Comp Eng 移动应用程序类的介绍开发这个单一功能,大约一周,开始了解光标、内容解析器和适配器。但是代码承认我从不使用游标,但我不知道如何将游标合并到这个程序中。

public class HelloAutoCompleteActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ContentResolver content = getContentResolver();
        Cursor cursor = content.query(Contacts.CONTENT_URI, PEOPLE_PROJECTION, null, null, ContactsContract.Contacts.DISPLAY_NAME + " ASC");
        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
//      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, PEOPLE_PROJECTION);
//      textView.ContactListAdapter adapter = new textView.ContactListAdapter(this, cursor);
        textView.setAdapter(adapter);
    }
    private static final String[] PEOPLE_PROJECTION = new String[] {
        ContactsContract.Contacts._ID,
        ContactsContract.CommonDataKinds.Phone.TYPE,
        ContactsContract.CommonDataKinds.Phone.NUMBER,
        ContactsContract.CommonDataKinds.Phone.LABEL,
        ContactsContract.Contacts.DISPLAY_NAME
    };
    String[] projection = new String[] {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts._COUNT,
            ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.NUMBER
         };

    //Get the base URI for the People table in the Contacts content provider.
    Uri contacts =  ContactsContract.AUTHORITY_URI;

    ////Make the query. 
    Cursor cursor;
}
4

1 回答 1

0

正如您提到的,您开始了解游标,因此,由于您了解游标的基本功能,因此它用于保存数据库上查询返回的数据。因为在上面的代码中,您正在查询设备的联系人数据库。并且代码返回游标中的数据,因为您没有进一步使用它。您可以使用光标并在下面执行

  1. 获取联系人姓名并显示在屏幕上
  2. 获取联系人姓名和号码并显示。

下面是示例程序的链接,导入它你会得到更好的主意。

http://l8rs.blogspot.com/2009/03/android-sample-list-contact-book-and.html

于 2011-11-29T04:12:41.387 回答