如何在android中获取特定listitem的已保存项目?

时间:2012-12-07 06:39:46

标签: android listview position listitem

我正在开发一个应用程序,当用户点击列表视图的项目时,会出现一个新页面,并且在此页面中仅显示所选项目。我的意思是对于特定的列表项,只显示以前保存的项目。

在这个新页面中,我有3个复选框。因此,当用户点击特定列表项时,新页面将显示该特定项目的先前已保存状态的复选框。

现在我不知道该怎么做。

提前完成!!

这是我的名单onItemClick: -

OnItemClickListener ocl= new OnItemClickListener() 
            {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) 
                {
                    String name= list.get(arg2)[2];
                    Toast.makeText(Profile.this, "session of.." + name, Toast.LENGTH_LONG).show();
                    Settings.setName(name);
                    Intent intent= new Intent(Profile.this, ProfileConfig.class);
                    startActivity(intent);

                }
            };
            lvChildProfile.setOnItemClickListener(ocl);

现在我希望在点击保存的复选框实例时显示。

1 个答案:

答案 0 :(得分:0)

您可以将状态保留在对象本身中。

Model implements Serializable {

    boolean isOptionOneChecked
    boolean isOptionTwoChecked
    boolean isOptionThreeChecked
    int id
    ...

    // Constructor
    // Getters & setters

}

这意味着您的Adapater将拥有Model类型的对象列表。您希望如何在ListView中显示这些内容,可以使用自定义Adapter来完成,但这不是真正的问题。

单击列表中的项目时,可以使用

检索对象(就像您已经做过的那样)
Model lModel = list.get(position);

为了在不同的Activity中显示模型,您可以将其与Intent一起发送:

Intent intent= new Intent(Profile.this, ProfileConfig.class);
intent.putExtra("MySelectedObject", lModel);
startActivity(intent);

因为我们的类实现了Serializable接口,所以我们可以在新的Activity中检索对象,如下所示:

getIntent().getSerializableExtra("MySelectedObject");

您将获得有关此对象的所有信息,以便您可以相应地创建布局。