联系人和联系人在同一个应用程序中合作

时间:2011-07-05 14:30:51

标签: android

我现在已经完成了if语句和每次的代码,但我想做的是这样的:

import android.content.Intent;
import android.provider.Contacts;
import android.provider.ContactsContract;

public class AddContacts{
    public static void newContacts(){

        Intent i = new Intent(Intent.ACTION_INSERT);
        i.setType(ContactsContract.Contacts.CONTENT_TYPE);

        i.putExtra(ContactsContract.Intents.Insert.NAME, Directory.ResultsDetails[0]);
        i.putExtra(ContactsContract.Intents.Insert.PHONE, Directory.ResultsDetails[4]);
        i.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, 3);
        i.putExtra(ContactsContract.Intents.Insert.EMAIL, Directory.ResultsDetails[3]);
        i.putExtra(ContactsContract.Intents.Insert.EMAIL_TYPE, 2);

        startActivity(i);
    }

    public static void oldContacts(){

        Intent i = new Intent(Contacts.Intents.Insert.ACTION, Contacts.People.CONTENT_URI);
        i.putExtra(Contacts.Intents.Insert.NAME, Directory.ResultsDetails[0]);
        i.putExtra(Contacts.Intents.Insert.PHONE, Directory.ResultsDetails[4]);
        i.putExtra(Contacts.Intents.Insert.PHONE_TYPE, 3);
        i.putExtra(Contacts.Intents.Insert.EMAIL, Directory.ResultsDetails[3]);
        i.putExtra(Contacts.Intents.Insert.EMAIL_TYPE, 2);

        startActivity(i);

    }

}

然后有类似的东西:

if(sdk >=5){
    AddContacts.newContacts();
}else{
    AddContacts.oldContacts();}

按下“添加到联系人”按钮时。

不幸的是,我不确定我该怎么做。我尝试在包中添加一个新类(AddContacts)并将其放入,但它不会让我以这种方式启动活动。我想把这个代码推送到它自己的类,因为它会在我的应用程序的其余部分中保存一些混乱。任何帮助表示赞赏!

我得到的错误是在startActivity(i); |对于AddContacts类型

,方法startActivity(Intent)未定义

1 个答案:

答案 0 :(得分:0)

  

对于AddContacts类型

,方法startActivity(Intent)未定义

newContacts()oldContacts()将[{1}}作为参数,并在Activity上致电startActivity()

但是,此处的代码一般不起作用。如果您尝试支持Android 1.x,则无法在将加载到VM中的类中引用Activity,因为ContactsContract将不存在 - 您将获得{{1}在运行时。相反,如果您只是尝试支持Android 2.x / 3.x,请直接跳过ContactsContract,并且只担心VerifyError

Here is a sample project以向后兼容的方式展示对ContactsContactsContract的访问,它将在1.x和Contacts上使用ContactsContract 2.X / 3.X。在这种情况下,我正在查询提供者,但同样的概念也适用于插入。

话虽这么说,我建议只支持Android 2.x / 3.x用于一个全新的应用程序,因为1.x现在约占市场的4%,而且还在下降。