0

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

在这个新页面中,我有 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);

现在我希望在单击复选框的已保存实例时出现。

4

1 回答 1

0

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

Model implements Serializable {

    boolean isOptionOneChecked
    boolean isOptionTwoChecked
    boolean isOptionThreeChecked
    int id
    ...

    // Constructor
    // Getters & setters

}

这意味着您Adapater将拥有来自模型类型的对象列表。你想如何在你的ListView, 中显示这些可以通过自定义来完成,Adapter但这不是真正的问题。

当您单击列表中的项目时,您可以检索对象(就像您已经做过的那样)

Model lModel = list.get(position);

为了以不同的方式显示模型Activity,您可以将其与您的Intent原样一起发送:

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

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

getIntent().getSerializableExtra("MySelectedObject");

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

于 2012-12-07T10:12:12.967 回答