3

次のコードを書きましたが、最初の 3 つのリスト項目でのみ機能し、残りの項目では null ポインター例外が発生します。

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;
        }
    });

リスト項目には、テキスト項目が 1 つとボタンが 2 つだけあります。1 つのリスト項目をクリックすると、その項目の 2 つのボタンのみが表示され、残りのリスト項目ボタンは表示されません。また、他のリスト項目をクリックすると、以前に選択した項目のボタンも無効になります。上記のコードは、リストの最初の 3 項目に対してのみ機能しますが、すべてに対して機能するわけではありません。

前もって感謝します。

4

1 に答える 1

1

このリスト ビューのアダプタでこれを処理する必要があります。同様の質問を参照してください。

リストビューで子アイテムを無効にする方法(色を灰色にしてクリックできないようにする)

Android: リスト作成時にリスト アイテムを無効にする方法

リストビューでアイテムを無効にする方法は?

このチュートリアルも役に立ちます。

http://www.vogella.com/articles/AndroidListView/article.html

具体的には、そのチュートリアルのセクション 2 で、選択されるリスト項目を変更する方法を示しています。あなたのケースでは、他のすべての人を変更することを除いて、同様のことを行い、おそらく「アクティブな」リスト項目を追跡するために何らかの簿記を行います。

幸運を。

于 2012-09-01T06:25:08.817 に答える