2017-04-20 15 views
0

ユーザーがページを追加できるため、未定義のページを含むビューページャーがあります。それは大丈夫ですが、私はユーザーがそれらのページを削除できるようにする方法を考えていません。以下のコードですべてのタブで長いクリックリスナーを実装しようとしましたが、機能しません。tablayoutのすべてのタブでクリックを検出するにはどうすればよいですか?

次に、どのタブがクリックされたかを検出する方法はありますか?各TABLongClickリスナーの

for (tabCounter = 0; tabCounter < DataOfPages.size(); tabCounter++) { 
     tabLayout.getTabAt(tabCounter).setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       dataSource.open(); 
       dataSource.deleteById(tabCounter); 
       dataSource.close(); 

       setupViewPager(viewPager); 
       return true; 
      } 
     }); 
    } 

答えて

2

実装:

LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0); 

for (int i = 0; i < tabStrip.getChildCount(); i++) { 

    // Set LongClick listener to each Tab   
    tabStrip.getChildAt(i).setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 

      Toast.makeText(getApplicationContext(), "Tab clicked" , Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 
} 

希望これは〜

+0

が良いようだが、動作していないのに役立ちます。なぜ私は考えていない。 –

+0

私は同じコードとその作業をうまく使いました。私がいつでもタブに長押しを表示するトースト "タブをクリック"表示 – FAT

+0

それは私のせいで、デバッグする時間です。あなたの答えをありがとう:) –

関連する問題