当我点击该项目并禁用android中其余列表项中存在的所有按钮时,如何启用listview项目的按钮?

时间:2012-09-01 03:57:35

标签: android android-layout

我编写了以下代码,但它仅适用于前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项,但并不适用于所有项目。

提前谢谢。

1 个答案:

答案 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部分,其中显示了如何更改所选的列表项。在你的情况下你会做类似的事情,除了你会改变其他人,并且可能会做一些记账以跟踪“活动”列表项。

祝你好运。