我有一个ListActivity,它应该调用一个编辑表单,就像在Notepad tutorial中一样。不同之处在于,我不想直接调用ACTION_EDIT
意图,而是直接调用EditorActivity类,并向其发送ID。现在我只能弄清楚如何直接调用意图
startActivity(new Intent(Intent.ACTION_EDIT,ContentUris.withAppendedId(getIntent().getData(), id)));
或发送带有一般编辑请求的ID
startActivity(new Intent(getBaseContext(),LocationEditorActivity.class));
那么我现在如何将它们匹配在一起呢?
答案 0 :(得分:3)
这样做......
startActivity(new Intent(Intent.ACTION_EDIT,ContentUris.withAppendedId(getIntent().getData(), id)));
...就像询问操作系统一样:“嘿,我希望你打开一个处理这种URI并支持Intent.ACTION_EDIT操作的活动。”
然后,选择的活动必须查看Uri内部并提取ID并处理它。因此,如果您想直接启动活动,则只需将ID显式发送到该活动:
Intent intent = new Intent(getBaseContext(),LocationEditorActivity.class);
intent.putExtra("the_id", id);
startActivity(intent);
然后,在活动中,不是在Uri数据中查找ID,而是从附加内容中获取它:
long theId = getIntent().getExtras().getLong("the_id", -1);
答案 1 :(得分:2)
? 尝试建立这样的意图:
Intent intent = new Intent(getApplicationContext(), LocationEditor.class);
intent.putExtra("Id", id);
startActivity(intent);
在接收活动中:
Intent intent = getIntent();
int id = intent.getExtras().getInt("Id");