2016-06-17 6 views
0

WhatsAppの動作: 画像を長時間クリックすると、個々のチャットの中で、横に長いボタンをクリックした場所に関係なく、CABが起動します。サムネイルの横にある左の空きスペースを長押ししても同じような動作が起こります(下の画像を参考にしてください)。CABの起動とonClick処理のようなWhatsapp

私の問題: 私はこれがMultiChoiceModeListenerを通じて容易に達成可能である知っているが、私はこの時点で(そのため画像が別のフルスクリーン・コントローラで開きます)画像のための個別のonClickの個々のonClickを適用すると、ここで問題がありますサムネイルは長いクリックを引き継ぎ、サムネイルを長押ししてもCABは起動しません。 CABは、私だけは、サムネイルの横の空きスペースでlongclickときに起動enter image description here

質問:この動作を行うにはどのよう 。 リストアイテムのXML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/parent_id" 
    style="@style/Theme.AppCompat" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/btn_star_big_on" /> 
</LinearLayout> 

MainActivity.java

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       long viewId = view.getId(); 
       if (viewId == R.id.custom_tv) { 
        Toast.makeText(MainActivity.this, "Only text item clicked", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(MainActivity.this, "ListView remaining area clicked", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 

listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { 
//code to operate on selected views 
}); 

CustomAdapter:

コードサムネイルの横右側画像と空き領域について撮影

。クラス

public View getView(final int position, View view, final ViewGroup parent) { 
     final ViewHolder holder; 
     if (view == null) { 
      holder = new ViewHolder(); 
      view = inflater.inflate(R.layout.custom_textview, null); 
      holder.itemName = (TextView) view.findViewById(R.id.custom_tv); 
      holder.image = (ImageView) view.findViewById(R.id.image); 
      holder.image.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        ((ListView) parent).performItemClick(v, position, 0); 
       } 
      }); 

アダプタクラスで上記のコードは、私はちょうどgetViewメソッド()内の画像上での直接のonClickを入れても、同じ振る舞いを与えるあなたImageViewのをXMLにこれを追加すること

+0

rのレイアウトとJavaコード...? –

答えて

0

試し

android:longClickable="true" 

あなたのプログラムが必要な場合は、それをJavaコードに追加してください:

your_image_view.setLongClickable(true); 
+0

いいえ、うまくいきません – Avijeet

+0

ご迷惑をおかけして申し訳ありません。あなたの場合、ListViewのItemLongClickイベントを与えることはできません....?そしてそこにCABを入れてください。 –

+0

私はsetMultiChoiceModeListener()を使って解決策を見つけることを望んでいましたが、今まで見つからなかったのです。ですから、listItem全体の長いクリックリスナーの中からCABのマルチモードを起動する方法(リンク/参照)はありますか? – Avijeet

関連する問題