在按钮上单击我想显示联系人列表并检索用户选择的联系人号码。 这是我的代码:
public class MainActivity extends Activity {
int level;
final int PICK_CONTACT =1;
private TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = new TextView(this);
textView.setWidth(100);
textView.setHeight(100);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void onClick(View v) {
@SuppressWarnings("deprecation")
//Contracts class is deprecated , please tell any other alternative if possible.
Intent intent= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
//here am retrieving name , please tell how to retrieve number as well
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
textView.setText(name);
// TODO Fetch other Contact details as you want to use
}
}
break;
}
}
}
在 list 文件中添加权限:android.permission.READ_CONTACTS
不知道是否真的需要。
还请告诉我是否要检索用户从联系人列表中选择的多个联系人。
这是我的日志:
11-17 15:28:58.265: E/AndroidRuntime(12359): FATAL EXCEPTION: main
11-17 15:28:58.265: E/AndroidRuntime(12359): java.lang.IllegalStateException: Could not execute method of the activity
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.view.View$1.onClick(View.java:2144)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.view.View.performClick(View.java:2485)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.view.View$PerformClick.run(View.java:9080)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.os.Handler.handleCallback(Handler.java:587)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.os.Handler.dispatchMessage(Handler.java:92)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.os.Looper.loop(Looper.java:130)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.app.ActivityThread.main(ActivityThread.java:3687)
11-17 15:28:58.265: E/AndroidRuntime(12359): at java.lang.reflect.Method.invokeNative(Native Method)
11-17 15:28:58.265: E/AndroidRuntime(12359): at java.lang.reflect.Method.invoke(Method.java:507)
11-17 15:28:58.265: E/AndroidRuntime(12359): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
11-17 15:28:58.265: E/AndroidRuntime(12359): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
11-17 15:28:58.265: E/AndroidRuntime(12359): at dalvik.system.NativeStart.main(Native Method)
11-17 15:28:58.265: E/AndroidRuntime(12359): Caused by: java.lang.reflect.InvocationTargetException
11-17 15:28:58.265: E/AndroidRuntime(12359): at java.lang.reflect.Method.invokeNative(Native Method)
11-17 15:28:58.265: E/AndroidRuntime(12359): at java.lang.reflect.Method.invoke(Method.java:507)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.view.View$1.onClick(View.java:2139)
11-17 15:28:58.265: E/AndroidRuntime(12359): ... 11 more
11-17 15:28:58.265: E/AndroidRuntime(12359): Caused by: java.lang.IllegalArgumentException: URI: content://contacts, calling user: android.uid.system:1000, calling package is one of: [com.sec.android.app.popupuireceiver, com.android.Preconfig, com.sec.app.RilErrorNotifier, com.sec.android.providers.drm, com.android.server.vpn, com.android.systemui, com.android.providers.security, com.wssyncmldm, com.android.settings, com.wssnps, com.android.bluetoothtest, com.sec.android.app.servicemodeapp, com.sec.android.app.factorytest, com.android.settings.mt, com.samsung.InputEventApp, com.sec.dsm.system, com.sec.android.app.wlantest, com.samsung.AlertRecipients, com.sec.android.app.personalization, android, com.sec.android.app.selftestmode, com.google.android.backup, com.android.providers.settings, com.android.providers.subscribedfeeds, com.sec.android.app.lcdtest]
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.os.Parcel.readException(Parcel.java:1326)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.os.Parcel.readException(Parcel.java:1276)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.app.ActivityManagerProxy.getProviderMimeType(ActivityManagerNative.java:2846)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.content.ContentResolver.getType(ContentResolver.java:215)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.content.Intent.resolveType(Intent.java:3268)
11-17 15:28:58.265: E/AndroidRuntime(12359): at android.content.Intent.resolveTypeIfNeeded(Intent.java:3290)
11-17 15:28:58.265: E/AndroidRuntime(12359): at
11-17 15:28:58.265: E/AndroidRuntime(12359): at com.example.sms.MainActivity.onClick(MainActivity.java:82)
最佳答案
在您的按钮 onclick 中,您必须添加 intent.setType(Phone.CONTENT_TYPE);您的代码中缺少此内容,请使用以下代码。
Intent intent= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(Phone.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT);
关于android - 请帮我解决以下异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430079/
我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声
首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有, 也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我们如何捕获或/和处理ruby中所有未处理的异常?例如,这样做的动机可能是将某种异常记录到不同的文件或发送电子邮件给系统管理。在Java中我们会做Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandlerex);在Node.js中process.on('uncaughtException',function(error){/*code*/});在PHP中register_shutdown_function('errorHandler');functionerrorHandler(){$error=error_
我使用的第一个解析器生成器是Parse::RecDescent,它的指南/教程很棒,但它最有用的功能是它的调试工具,特别是tracing功能(通过将$RD_TRACE设置为1来激活)。我正在寻找可以帮助您调试其规则的解析器生成器。问题是,它必须用python或ruby编写,并且具有详细模式/跟踪模式或非常有用的调试技术。有人知道这样的解析器生成器吗?编辑:当我说调试时,我并不是指调试python或ruby。我指的是调试解析器生成器,查看它在每一步都在做什么,查看它正在读取的每个字符,它试图匹配的规则。希望你明白这一点。赏金编辑:要赢得赏金,请展示一个解析器生成器框架,并说明它的