我现在已经完成了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)未定义答案 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以向后兼容的方式展示对Contacts
和ContactsContract
的访问,它将在1.x和Contacts
上使用ContactsContract
2.X / 3.X。在这种情况下,我正在查询提供者,但同样的概念也适用于插入。
话虽这么说,我建议只支持Android 2.x / 3.x用于一个全新的应用程序,因为1.x现在约占市场的4%,而且还在下降。