Android 单击传递的列表视图\u id

Android 单击传递的列表视图\u id,android,listview,Android,Listview,我已经创建了一个用户所有收件箱电子邮件的列表视图。现在单击电子邮件id。我想有一个活动,在其中显示邮件的内容。问题是我无法理解如何将邮件ID传递给活动以获取包含详细信息的电子邮件 public class InboxActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

我已经创建了一个用户所有收件箱电子邮件的列表视图。现在单击电子邮件id。我想有一个活动,在其中显示邮件的内容。问题是我无法理解如何将邮件ID传递给活动以获取包含详细信息的电子邮件

public class InboxActivity extends ListActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.inbox);

        DBAdapter db = new DBAdapter(InboxActivity.this);
        db.open();
        long userID = Long.parseLong(MessagingApplication.getUserID());

        Cursor inbox = db.readInbox(userID);
        startManagingCursor(inbox);

        String[] mails = new String[] { DBAdapter.KEY_SUB };

        int[] to = new int[] { R.id.subject };

        SimpleCursorAdapter inboxmail = new SimpleCursorAdapter(this,
                R.layout.inbox_list, inbox, mails, to);

        setListAdapter(inboxmail);

        db.close();
    }
}
这是我的收件箱列表视图

请查看。 您将看到他们正在使用一个来传递数据(在您的例子中,数据是指向您的邮件的URI)

您可以使用类似下面的代码来构造mailUri(基于列表中的选定项),并通过传递包含操作(intent.Action_视图)和数据(mailUri)的新intent来启动新活动

使用Itents可以使代码更松散地耦合并促进重用(请注意,您没有指定需要启动的活动名称)

查看上的android基础知识,了解如何配置一个活动以根据您的操作\u查看mailUri进行操作

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    Uri mailUri = ContentUris.withAppendedId(getIntent().getData(), id);
    startActivity(new Intent(Intent.ACTION_VIEW, mailUri));
}