我有 ListView ,点击列表项后,它会启动另一项活动。
所以我的问题是,当我点击列表项时,它应该更改其背景并移动到另一个活动,并且在按下此活动时,列表项应保留其更改的背景颜色。再次单击另一个列表,它应该删除较早的背景颜色并再次执行相同操作。
提前致谢。
答案 0 :(得分:0)
你需要ListView中的setItemChecked()
方法。如果您将项目放在侦听器中的onItemClick()
方法中,则应使您单击“永久打开”的项目。请注意,当您导航到下一个活动时,您必须使用onSaveInstanceState()
和onRestoreInstanceState()
来存储点击ListView
中的哪个项目;我不相信当您使用Activity
离开ListView
时,Android会保留点击哪一个。
在开发人员网站的here的Fragments部分中有相当好的教程。
希望这有帮助。
答案 1 :(得分:0)
跟踪所选项目。使用自定义适配器并覆盖getView
方法。在此方法中,检查视图的位置是否为所选项目,并相应地更改视图的背景。
答案 2 :(得分:0)
覆盖项目单击侦听器并执行以下操作以更改所单击视图的颜色:
listView1.setOnItemClickListener(new ListView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3)
{
v.setBackgroundColor(Color.BLACK);
}
});
答案 3 :(得分:0)
我通过 setItemChecked()解决这个问题,并在我的布局xml文件中的ListView中使用 android:choiceMode =“singleChoice ”。我在单击列表中的项目时使用MyClass.this.getListView().setItemChecked(position,true);
,而在getView()上我正在执行此操作...
if(position == MyClass.this.getListView().getCheckedItemPosition()){
holder._newsLinear.setBackgroundColor(Color.CYAN);
}
else{
holder._newsLinear.setBackgroundColor(Color.BLACK);
}