使用视图保存其他上下文

时间:2018-04-23 09:02:42

标签: android

我有GridView,其中显示了缩略图列表。点击其中一个之后,我想导航到另一个活动,详细查看相应的“事物”。

我应该如何存储一些额外的数据/标识符,以便点击后我可以将其传递给详细的活动?默认情况下,我只获得位置和ID。我想以某种方式存储我的自定义标识符,我用它来查询外部服务以获取详细信息。

gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v,
                            int position, long id) {
        Intent intent = new Intent(this, MovieDetails.class);
        intent.putExtra(MY_ID, <some_extra_ID>);
        startActivity(intent);
    }
});

修改

例如,我有一个动态的菜单列表,只有该菜的照片(使用GridView)。当用户点击其中一个时,我想显示一个包含食谱和评论的详细视图。

为此我需要传递该菜的名称以在详细视图中加载信息。

1 个答案:

答案 0 :(得分:0)

实际上它与点击监听器在通过viewpositionid时可以获得的一样好。但是,您可以通过在适配器中定义唯一商品 ID 来改善您获得的数据。

如果您使用ArrayAdapterSimpleAdapter ID 通常与位置相同,但对于CursorAdapterSimpleCursorAdapter ID 会返回表格行ID

现在您可以扩展 适配器并在getItemId方法中返回所需的 ID

public class MyAdapter extends ArrayAdapter<MyItem>{

        ...
        @Override
        public long getItemId(int position) {
            return myItems.get(position).myUniqueId;
        }
}