Ist es möglich, einen OnItemClickListener in einer ListView zu verwenden, wenn das Items-Layout über ein anklickbares/editierbares Widget (RadioButton, EditText oder CheckBox) verfügt?ListView mit anklickbarem/editierbarem Widget
Antwort
Vielleicht möchten Sie einen Blick auf this issue werfen. Wenn Sie ein fokussierbares Element in einer Zeile eines ListView
haben, wird OnItemClickListener
NICHT aufgerufen. Das bedeutet jedoch nicht, dass Sie keine fokussierbaren/anklickbaren Elemente in einer Zeile haben können. Es gibt einige Problemumgehungen wie this one.
Sie können auch den Bildschirm "Anrufprotokolle" anzeigen. Es hat eine ListView
mit anklickbarem Element (das Anrufsymbol auf der rechten Seite). See Source code here
Schnelle Hilfe: "Eine einfache Möglichkeit, dieses Problem zu umgehen, besteht darin, " setDescendantFocusability (FOCUS_BLOCK_DESCENDANTS); " in den Listenansichten, so wie sie hinzugefügt werden Sie können Zeilen auswählen, auf Zeilen klicken und auf untergeordnete Kontrollkästchen und Schaltflächen klicken. " - Dies ist ein Zitat aus Kommentar # 27 auf der Seite, auf die zwei der Links in der obigen Antwort verweisen. Vielen Dank!! –
Link zu Workaround 1 ist unterbrochen. Kann jemand das bearbeiten? – Martze
nur der erste Link funktioniert die anderen sind kaputt bitte behoben, dass – BBdev
Zitiert Kommentar # 31 in Verbindung mit Samuh erwähnt (die das Problem für mich gelöst):
In der Tat Sie es in das Layout XML hinzufügen können (falls von einem aufgeblasen): android: demcendantFocusability = "blocksDescendants".
Hier JIC hinzufügen, dass die Webseite in der Zukunft nicht verfügbar ist.
Wenn ein Zeilenelement der Liste eine fokussierbare oder anklickbare Ansicht enthält, funktioniert OnItemClickListener
nicht.
Reihe Gegenstand muss param wie android:descendantFocusability="blocksDescendants"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:descendantFocusability="blocksDescendants"
android:gravity="center_vertical" >
// your other widgets here
</LinearLayout>
versucht, viele komplexe Lösungen werden mit, aber es war die einfachste, die funktioniert:
android: fokussierbarem = "false"
<CheckBox
android:id="@+id/fav_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false" />
Zwei beste Lösung
- hinzufügen
android:descendantFocusability="beforeDescendants"
zur Listenansicht in xml ODER - Set gegeben zwei Attribute
false
wie
android:focusable="false"
android:focusableInTouchMode="false"
Dann wird es das Listview-Reihe Artikel Kind (Button Griff, EditText usw.) Ereignisse anstelle von listView.setOnItemClick.
Ich reparierte mein Problem anders, ich habe in meinem Artikel mehr als ein Linearlayout also, wenn Sie ID Ihre linearayout und setOnclickListener in Adapterklasse geben wird, nur ursprüngliche Wirkung der Berührung arbeiten verschwinden. aber dieser Link Making a LinearLayout act like an Button ist nützlich linearlaout wirken wie Taste auf Klick
Artikel
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/txt_item_followers_name"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:gravity="center|start"
android:paddingLeft="15dp"
android:text="Ali"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/imageView"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentStart="true"
android:layout_below="@+id/txt_item_followers_name"
android:layout_marginLeft="10dp"
android:src="@drawable/puan_icon" />
<TextView
android:id="@+id/txt_item_followers_mark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView"
android:layout_toEndOf="@+id/imageView"
android:background="@color/red_400"
android:paddingLeft="10dp"
android:text="25.5"
android:textAppearance="?android:attr/textAppearanceSmall" />
<LinearLayout
android:id="@+id/linear_one"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/txt_item_followers_name"
android:background="@color/red_400"
android:orientation="vertical">
<ImageView
android:id="@+id/btn_item_followers_2b_follow"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginLeft="10dp"
android:src="@drawable/follow_buton" />
</LinearLayout>
</RelativeLayout>
innen getView Methode
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
View view = convertView;
if (convertView == null)
view = inflater.inflate(R.layout.deneme, null);
final Followers2 myObj = myList.get(position);
LinearLayout linear_one = (LinearLayout) view.findViewById(R.id.linear_one); // HERE WE DOMUNİCATE IT
linear_one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(parentActivity, "One Two", Toast.LENGTH_SHORT).show();
}
});
TextView name = (TextView) view.findViewById(R.id.txt_item_followers_name);
TextView mark = (TextView) view.findViewById(R.id.txt_item_followers_mark);
final ImageView btn_follow = (ImageView) view.findViewById(R.id.btn_item_followers_2b_follow);
name.setText(myObj.getName());
mark.setText(myObj.getScore());
/* if (myObj.isFollow() == true) {
btn_follow.setImageResource(R.drawable.following_buton);
} else {
btn_follow.setImageResource(R.drawable.follow_buton);
}
btn_follow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Followers2 myObj = myList.get(position);
if (myObj.isFollow() == true) {
btn_follow.setImageResource(R.drawable.following_buton);
} else {
btn_follow.setImageResource(R.drawable.follow_buton);
}
}
});*/
return view;
}
- 1. Updating Widget Listview
- 2. Android - Widget mit scrollbaren Listview Handbuch Refresh
- 3. Android anklickbares Widget mit ListView nicht anklickbar auf ListItems
- 4. kivy Spinner Widget mit Mehrfachauswahl
- 5. Checkbox-Spalte in Listview Widget von jQuery Mobile
- 6. Wie ändere ich die Schriftgröße eines ListView-Widget in. Kv
- 7. Wie Artikel in Android Homescreen Listview Widget laden?
- 8. Probleme mit Android-pulltorefresh Widget
- 9. Resizeable Widget in ConstraintLayout
- 10. Anwendungs-Widget mit Bündel?
- 11. Android Widget mit AsyncTask
- 12. Widget nicht in Widget-Liste
- 13. Wordpress und Widget mit TinyMCE
- 14. jQueryUI Spinner Widget mit Knockout
- 15. reCaptcha Widget mit PHP/Curl
- 16. Individuelle Slider-Widget mit wxPython
- 17. Android Widget mit Xamarin Forms?
- 18. android widget mit mehreren tasten
- 19. Link Javascript mit GWT-Widget
- 20. Positionierung reCAPTCHA Widget mit CSS
- 21. Android Studio - Widget mit Konfigurationsaktivität
- 22. Zwei gleiche Widget mit Jquery
- 23. Django models.CommaSeparatedIntegerField mit forms.CheckboxSelectMultiple widget
- 24. Disable Ripple on ListView
- 25. yii Bootstrap + Widget TbButtonColumn + Widget TbButtonGroup
- 26. Viewpager mit Listview innerhalb
- 27. Listview mit Multiselect
- 28. C# Arbeiten mit Listview
- 29. ListView mit LVS_OWNERDATA Flag
- 30. WPF: ListView mit Symbolansicht?
Verlängert ListActivity statt Aktivität zu machen. Siehe http://www.softwarepassion.com/android-series-custom-listview-items-and-adapter/ –