2017-01-16 13 views
2

これは状況です。私はリストビューをいくつか持っています。各項目の中には、親項目でクリックした後にのみ表示される2つのクリック可能なビューがあります。ListViewアイテム内の子ビューのOnclickListenerは、onitemclicklistenerの後に2回目だけ起動します。

それは次のように動作します。

productList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(final AdapterView<?> parent, final View view, final int position, long id) { 

       TextView txtAdd = (TextView) view.findViewById(R.id.txt_add_units); 
       txtAdd.setVisibility(View.VISIBLE); 
       txtAdd.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         ... 
        } 
       }); 

       TextView txtRemove = (TextView) view.findViewById(R.id.txt_remove_units); 
       txtRemove.setVisibility(View.VISIBLE); 
       txtRemove.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         ... 
        } 
       }); 

       basketProductsListAdapter.notifyDataSetChanged(); 

      } 

     }); 

リストビュー項目がクリックされた最初の時間、そのtxtAddとtxtRemove子ビューが表示され、ユーザーがそれをクリックすると、その後、そのonclickListener内のコードが実行されます。

問題は、最初のリストビュー項目にのみ表示されます。初めてtxtAddとtxtRemoveがクリックされますが、最初はユーザーが子ビューをクリックし、親のItemClickListenerが再び起動され、子ビュー(txtAddおよびtxtRemove)はclickListenerを受信しません。時間の経過に伴い、それらは完全に動作します。奇妙なことは、listViewの最初の項目で初めて発生することです。

アイデア?前もって感謝します!

+0

の子ビューに

android:focusable="false" android:focusableInTouchMode="false" 

を追加してみてください、その後に動作しない場合はフォーカス可能avoideするXMLそれでも

でその行を追加しますLineLayoutを 'visiblity = gone'にしておきます。リスト項目で、その線形レイアウトの可視性をprogarmaticallyで「可視」に設定するをクリックします。次に、 'txtAdd'と' txtRemove'のクリックイベントをトリガします。 – Vikrant

+0

それは私がやっているのとかなり同じです、それは@Vikrantですか?とにかくありがとう – Hugo

+0

'android:descendantFocusability =" blocksDescendants "'をあなたのlistview xmlに追加しましたか? – Vikrant

答えて

0

はシングが最初のクリックがフォーカスのためになり、その後によってitemClickが動作しますので、私たちの子ビューがフォーカス可能であるかもしれあなたのリストビューのXMLにandroid:descendantFocusability="blocksDescendants"

をこの行を追加します。それはあなたの `txtAdd`と`置く、のLinearLayoutを作成し、リストビュー

+0

正解ですが、この文脈では問題はポスターがonClickListenersをネストしているという事実にあるように見えます。 – Wilhelm

関連する問題