我编写了以下代码,但它仅适用于前3个列表项,其余的则引发空指针异常。
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,final int arg2, long arg3) {
// TODO Auto-generated method stub
for(int i = 0; i <=list.getLastVisiblePosition(); i++)
{
System.out.println("onItemLongClick"+i);
if(i==arg2)
{
(list.getChildAt(i).findViewById(R.id.mark)).setVisibility(View.VISIBLE);
(list.getChildAt(i).findViewById(R.id.deleteitem)).setVisibility(View.VISIBLE);
}
else{
(list.getChildAt(i).findViewById(R.id.mark)).setVisibility(View.GONE);
(list.getChildAt(i).findViewById(R.id.deleteitem)).setVisibility(View.GONE);
}
}
(list.getChildAt(arg2).findViewById(R.id.deleteitem)).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AllMessagesActivity.this, "Delete at" +arg2, Toast.LENGTH_LONG).show();
}
});
(list.getChildAt(arg2).findViewById(R.id.mark)).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AllMessagesActivity.this, "Mark Spam at" +arg2, Toast.LENGTH_LONG).show();
}
});
return false;
}
});
在列表项中只有一个文本项和两个按钮。当我单击一个列表项时,只有该项的两个按钮必须可见,其余列表项按钮不可见。当您单击其他列表项时,之前选择的项按钮也会禁用。上面的代码仅适用于列表的前3项,但并不适用于所有项目。
提前谢谢。
答案 0 :(得分:1)
您需要在适配器中处理此列表视图。看到类似的问题:
How to disable a child item in a listview(make its color gray and unclickable)
Android: How to disable list items on list creation
How to disable items in a List View?
本教程也很有用:
http://www.vogella.com/articles/AndroidListView/article.html
具体来说,您可能希望查看该教程的第2部分,其中显示了如何更改所选的列表项。在你的情况下你会做类似的事情,除了你会改变其他人,并且可能会做一些记账以跟踪“活动”列表项。
祝你好运。