0

我为我的项目使用FunDapter。当我尝试添加imagebutton到我的布局时,其他文本变得无法点击。当我点击它们时什么都不做。如何将按钮添加到此适配器?如何将按钮添加到自定义适配器?

下面是list_layout,一切工作正常

<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> 

当我添加图片按钮,没有什么是除外的ImageButton

<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" 
    /> 

可以点击的,这是我创造我的适配器类的一部分

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 
} 

注意:另外当我给xml中的文本点击属性时,他们停止工作。像当我玩布局XML一切停止工作。

回答

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

我做了softinoutmode并添加了这两行lvProduct.setItemsCanFocus(true); lvProduct.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);仍然只有按钮工作listrows不 – Wardruna

0

在适配器类

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) { //... } }); }

但你可以得到一个问题 - ListView的行不能点击。解决方案:

  • 化妆的ListView可聚焦机器人:可调焦= “真”

  • 按钮不可作为焦点机器人:可调焦= “假”

+0

我不明白是什么代码does.I没有simiar code.Btw我做了2个可以专注的解决方案,但没有工作 – Wardruna

0

你得给个独立点击事件的所有意见。

你的ImageButton有android:clickable =“true”,这使得子视图可点击。但你其他的观点是不可点击的。

解决方案

对于TextView的单击事件

textView.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
// ... }
});
为ImageButton的
类似删除

机器人:可点击= “真”

希望它帮助。

相关问题