0

Ich benutze FunDapter für mein Projekt.Wenn ich versuche, imagebutton zu meinem Layout hinzufügen andere Texte werden unclickable.Hat nichts, wenn ich sie anklicke.Wie kann ich Button zu diesem Adapter hinzufügen?Wie Button zu benutzerdefinierten Adapter hinzufügen?

Im Folgenden finden Sie list_layout wo alles

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Isimsiz" 
    android:id="@+id/Housename" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="2dp" 
    android:clickable="false" 
    android:textColor="#241d1d" 
    android:layout_row="0" 
    android:layout_column="0" 
    android:layout_marginRight="2dp" 
    android:layout_marginTop="2dp" 
    android:layout_marginBottom="2dp" /> 



    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:text="Aciklama Yok" 
    android:id="@+id/Desc" 
    android:layout_below="@+id/Housename" 
    android:clickable="false" 
    android:layout_alignStart="@+id/Housename" 
    android:textColor="#241d1d" 
    android:layout_row="1" 
    android:layout_column="0" 
    android:layout_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_marginTop="2dp" 
    android:layout_marginBottom="2dp" 
    android:layout_alignEnd="@+id/Housename" /> 

    </RelativeLayout> 

fein funktioniert, wenn ich die Grafik-Taste nichts klickbare außer Image

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageButton" 
    android:layout_alignTop="@+id/Housename" 
    android:layout_alignParentEnd="true" 
    android:layout_alignBottom="@+id/Desc" 
    android:clickable="true" 
    android:onClick="berk" 
    /> 

Und dies ist Teil der Klasse hinzufügen, wo ich meinen Adapter erstellen

public void processFinish(String s) { 
    productList = new JsonConverter<Product>().toArrayList(s, Product.class); 
    BindDictionary<Product> dict = new BindDictionary<Product>(); 
    dict.addStringField(R.id.Housename, new StringExtractor<Product>() { 
     @Override 
     public String getStringValue(Product product, int position) { 
      return product.HouseID; 
     } 
    }); 

    dict.addStringField(R.id.Desc, new StringExtractor<Product>() { 
     @Override 
     public String getStringValue(Product product, int position) { 
      return product.Desc; 
     } 
    }); 


    FunDapter<Product> adapter = new FunDapter<>(
    ListActivity.this, productList, R.layout.layout_list, dict); 

    lvProduct = (ListView)findViewById(R.id.lvProduct); 
    lvProduct.setAdapter(adapter); 
    lvProduct.setOnItemClickListener(this); 

} 

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    //do sth 
} 
public void berk(View v) { 
    //do sth 
} 

Hinweis: Auch wenn ich anklickbare Attribute zu Texten in XML geben sie höre auf zu arbeiten.Wie ich mit Layout-XML spiele, funktioniert alles nicht mehr.

Antwort

0
First of all if u are using button or edit text in your adapter or row file Then every thing will get stop working . 
You should use 

1.Set descendant Focusablity="before Descendants" in the list view. 
2.Set window Soft Input Mode="adjust Pan" in the manifest 
3.Set list view.set Items Can Focus(true) 
+0

Ich machte softinoutmode und fügte diese zwei Zeilen lvProduct.setItemsCanFocus (true); lvProduct.setDescendantFocusability (ViewGroup.FOCUS_BEFORE_DESCENDANTS); Noch funktioniert nur Knopf listrows nicht – Wardruna

0

In Adapter Class

public View getView(final int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutInflater(); View row = inflater.inflate(R.layout.vehicals_details_row, parent, false); Button deleteImageView = (Button) row.findViewById(R.id.DeleteImageView); deleteImageView.setOnClickListener(new OnClickListener() { public void onClick(View v) { //... } }); }

Aber man kann ein Problem bekommen - Listview Zeile nicht angeklickt werden. Lösung:

  • make Listview fokussierbarem android: fokussierbarem = "true"

  • Knopf nicht fokussierbar android: fokussierbarem = "false"

+0

Ich verstehe nicht, was dieser Code tut.Ich habe nicht simiar code.Btw ich habe das 2 fokussierbare Lösungen gemacht, aber hat nicht funktioniert – Wardruna

0

Sie separaten Klick geben Ereignis für alle Ansichten.

Ihr ImageButton hat android: clickable = "true", was die Subansicht klickbar macht. Aber andere Ansichten sind nicht anklickbar.

Lösung

Für Click-Ereignis in Textview

textView.setOnClickListener (neu OnClickListener() {
public void onClick (Blick v) {
// ... }
});
ähnlich für Image
entfernen

android: anklickbare = "true"

hoffe, es hilft.

Verwandte Themen