OnItemLongClickListener funktioniert nicht in einer benutzerdefinierten Listenansicht

Ich möchte, dass das Kontextmenü nach dem langen Klicken auf ein Element in einer benutzerdefinierten Listenansicht angezeigt wird. Ich benutze die ActionBarSherlock . Versuche, mit Toast-Benachrichtigungen zu debuggen, habe ich entdeckt, dass Long-Click-Ereignis nicht gefeuert wird. Wie kann ich dieses Problem lösen?

m_vwJokeLayout=(ListView)findViewById(R.id.jokeListViewGroup); m_vwJokeLayout.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub if(m_vwActionMode!=null) { Toast.makeText(getApplicationContext(), "Inside On Itemlongclick", Toast.LENGTH_LONG).show(); return false; } Toast.makeText(getApplicationContext(), "Inside On Itemlongclick", Toast.LENGTH_LONG).show(); m_vwActionMode=getSherlock().startActionMode(m_vwCallback); view.setSelected(true); return true; } }); 

Der XML-Code, auf den mein ListView deklariert ist, ist unten angegeben:

  • Installieren einer Supportbibliothek für PreferenceFragmentCompat
  • Wie bekomme ich die Anzahl der Zeilen eines GridView?
  • Umgang mit doppelten Einträgen in AndroidStudio: java.util.zip.ZipException
  • Android NFC verschließt / stoppt das Scannen nach repetativen Scans
  • Wie erstelle ich ein Fragment mit einem anderen Fragment mit dem Hörer im ersten Fragment
  • Öffnen Sie html-Datei, die sich in meiner Anwendung mit WebView befindet
  •  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/addJokeButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/add_joke_button" /> <EditText android:id="@+id/newJokeEditText" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="2" android:hint="@string/enter_text_edittext" /> </LinearLayout> <ListView android:id="@+id/jokeListViewGroup" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout> 

    Der XML-Code für die View in der benutzerdefinierten ListView ist unten angegeben:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:weightSum="3" > <LinearLayout android:layout_width="200dp" android:layout_height="match_parent" android:layout_weight="2" android:gravity="center_vertical" android:orientation="vertical" > <TextView android:id="@+id/jokeTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:ellipsize="middle" android:gravity="center" android:paddingBottom="10dp" android:paddingTop="10dp" android:text="Hello," android:textSize="16px" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" > <RadioGroup android:id="@+id/ratingRadioGroup" android:layout_width="40dp" android:layout_height="60dp" android:layout_marginRight="10dp" android:gravity="center" > <RadioButton android:id="@+id/likeButton" android:background="@drawable/like" android:button="@null" /> <RadioButton android:id="@+id/dislikeButton" android:background="@drawable/dislike" android:button="@null" /> </RadioGroup> </LinearLayout> </LinearLayout> 

  • Android-Webview onPageFinished zweimal genannt
  • Installieren der Anwendung auf SD-Karte in Android sdk 2.2
  • Android - Video-Streaming über lokale HTTPS-Server: SSL-Zertifikat abgelehnt
  • PhoneGap Build baut nicht für Android mit PushPlugin
  • Elemente im Fragment funktionieren nicht nach dem Hinzufügen des gleichen Fragments
  • Wie kann ich die Spinner Schriftfarbe ändern?
  • 2 Solutions collect form web for “OnItemLongClickListener funktioniert nicht in einer benutzerdefinierten Listenansicht”

    Es geschieht aufgrund der Fokussierbarkeit des Radiobutton im Listenlayout.

    Fügen Sie unterhalb des Root-Layouts des Listenlayouts Ihrer ListView hinzu.

     android:descendantFocusability="blocksDescendants" 

    Sie sollten den onItemLongClickListener der Listenansicht wie folgt verwenden:

     lv.setOnItemLongClickListener(new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) { // TODO Auto-generated method stub Log.v("long clicked","pos"+" "+pos); return true; } }); 

    Beachten Sie, dass der Zuhörer keine Ableitung von der AdapterView-Klasse ist !!!!

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.