我正在开发一个应用程序,当用户点击列表视图的项目时,会出现一个新页面,并且在此页面中仅显示所选项目。我的意思是对于特定的列表项,只显示以前保存的项目。
在这个新页面中,我有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);
现在我希望在点击保存的复选框实例时显示。
答案 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");
您将获得有关此对象的所有信息,以便您可以相应地创建布局。