Android 安卓:McClickListener的问题

Android 安卓:McClickListener的问题,android,Android,我是一个Android初学者。我正在尝试创建一个短信应用程序 我创建了一个TabHost,其中包含三个TabSpect(ListView、ListView、TextView),用于打印我的收件箱,发送,并在文本视图中打印一些有用的信息 现在,如果我试图单击列表视图中的任何项目,它将打开SMS管理器,其中将填充我单击的SMS的电话号码 每次我尝试这个,我都会收到一个错误 list1.setOnItemClickListener(new OnItemClickListener() { @Overri

我是一个Android初学者。我正在尝试创建一个短信应用程序

我创建了一个
TabHost
,其中包含三个
TabSpect(ListView、ListView、TextView)
,用于打印我的
收件箱
发送
,并在
文本视图
中打印一些有用的信息

现在,如果我试图单击
列表视图中的任何项目,它将打开SMS管理器,其中将填充我单击的SMS的
电话号码

每次我尝试这个,我都会收到一个错误

list1.setOnItemClickListener(new OnItemClickListener() {
@Override
  public void onItemClick(AdapterView<?> arg, View view, int position,long id) {

    Uri uriSMSURIs = Uri.parse("content://sms/inbox");
    String pos = String.valueOf(position);
    Log.d(TAG, "value: " + pos);
    Cursor c = getContentResolver().query(uriSMSURIs, null, pos, null, null);

    Log.e(TAG, "value: " + c);
    String phoneNumber  = c.getString(c.getColumnIndex("address"));
    Log.e(TAG, "Value: " + phoneNumber;

    Intent sendIntent = new Intent(Intent.ACTION_VIEW);
    sendIntent.putExtra("address", phoneNumber);
    sendIntent.setType("vnd.android-dir/mms-sms");
    startActivity(sendIntent);
  }
});
它抛出以下错误:

04-02 07:53:15.504:错误/smsmsmanager(328):值:android.content.ContentResolver$CursorWrapperInner@43e2b800.


我不知道是否可以这样做。

我认为您传递给查询的参数类型错误。试试这个:

long id = arg.getItemIdAtPosition(position);
Cursor c = getContentResolver().query(uriSMSURIs, null, "_id = ?", new String[]{Long.toString(id)}, null);

请参阅文档。

它返回的值与我的变量pos(String pos=String.valueOf(position);)的值相同,因此它不起作用,我已经阅读了ContentResolver的文档。您有其他想法吗?您尝试过将第三个参数设置为“_id=?”,但它仍然不起作用?在最初的示例中,您将'pos'传递到query()的'selection'参数中,而不是传递到'selectionArgs'参数中。是的,但我添加了Log.d(标记,“Value of:+id”),它返回的值与我必须具有的posWitch premissions相同?
long id = arg.getItemIdAtPosition(position);
Cursor c = getContentResolver().query(uriSMSURIs, null, "_id = ?", new String[]{Long.toString(id)}, null);