ListView行无法点击(添加两个按钮后)

时间:2013-10-13 21:14:27

标签: java android android-listview

奇怪的是,我添加了两个按钮后,我的listView的onClick不再有效:提交和显示结果。 这是列表视图xml。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                tools:context=".CulturalActivity"
                android:background="#EFEFEF"
                android:id="@+id/AdLayout"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="3dp"

        >


    <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:divider="@android:color/transparent"
            android:descendantFocusability="blocksDescendants"
            android:scrollbars="none"
            android:dividerHeight="10dp"
            android:listSelector="@drawable/list_selector" />
        </RelativeLayout>

以下是每个列表行的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="315dp"
    android:clickable="true"

    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="7dp"
    android:background="@drawable/bg_card"
    android:orientation="horizontal"
    android:padding="5dip" >

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:layout_marginLeft="-60dp"
    android:background="#2093CD"
    android:gravity="center_horizontal" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="52dp"
        android:text="Audit"
        android:textColor="@android:color/white"
        android:textSize="20sp"
        android:textStyle="bold" />

</RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/relativeLayout2" />
    <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"


            android:text="Farm/Grp"

            android:textColor="#000000"
            android:typeface="sans"

            android:textSize="17sp"
            android:textStyle="bold"
        android:layout_alignTop="@+id/tile"
        android:layout_toRightOf="@+id/textView4" />


    <!--thumbnail-->
   <LinearLayout
       android:layout_width="80dp"

       android:layout_height="80dp"
       android:background="@drawable/thumbnail_image"
       android:layout_marginTop="35dp"
       android:gravity="center"
       android:id="@+id/tile">

       <ImageView
           android:id="@+id/thumbImage"
           android:layout_width="50dp"
           android:clickable="false"
           android:layout_height="50dp"
           android:src="@drawable/opened" />

   </LinearLayout>

    <TextView
        android:id="@+id/crophead"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Crop"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_alignBottom="@+id/tile"
        android:layout_alignLeft="@+id/title" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Certification"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_marginTop="10dp"
        android:layout_below="@+id/textView4"
        android:layout_alignParentLeft="true" />

    <TextView
        android:id="@+id/certification"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView2"
        android:layout_marginLeft="22dp"
        android:layout_toRightOf="@+id/title"
        android:text="Test"
        android:textColor="#343434"
        android:textSize="17sp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Audit Type"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_below="@+id/tile"
        android:layout_alignLeft="@+id/textView2"
        android:layout_marginTop="20dp" />

    <TextView
        android:id="@+id/audittype"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView2"
        android:layout_alignLeft="@+id/certification"
        android:maxLines="2"
        android:text="ES"
        android:textColor="#343434"
        android:textSize="17sp" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="3px"
       android:layout_marginTop="200dp"
        android:background="#21265b"
        android:id="@+id/view" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start Date"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_below="@+id/view"
        android:layout_alignLeft="@+id/view"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:layout_alignParentBottom="false" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="End Date"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_marginRight="15dp"
        android:layout_alignTop="@+id/textView6"
        android:layout_alignRight="@+id/startdate" />

    <TextView
        android:id="@+id/startdate"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#8B1A1A"
        android:text="30/05/1992"
        android:textSize="17sp"
        android:layout_alignTop="@+id/enddate"
        android:layout_toRightOf="@+id/relativeLayout2"
        android:layout_marginLeft="6dp"
        android:layout_alignParentBottom="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#8B1A1A"
        android:text="2/13/14"
        android:textSize="17sp"
        android:id="@+id/enddate"
        android:layout_below="@+id/textView7"
        android:layout_alignRight="@+id/textView7" />

    <TextView
        android:id="@+id/farm"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/audittype"
        android:maxLines="3"
        android:layout_alignTop="@+id/title"
        android:text="Tea Estate Nagarcoil Tamil Nadu, India "
        android:textColor="#343434"
        android:textSize="17sp" />

    <TextView
        android:id="@+id/crop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/farm"
        android:layout_alignTop="@+id/crophead"
        android:maxLines="2"
        android:text="Wheat without its chaff and barn but not brown"
        android:textColor="#343434"
        android:textSize="17sp" />

    <Button
        android:id="@+id/upsync"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/blue_thumb"
        android:layout_below="@+id/enddate"
        android:focusable="false"
android:focusableInTouchMode="false"
        android:text="Show Results"
        android:textColor="@android:color/white" />

    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@+id/upsync"
        android:focusable="false"
android:focusableInTouchMode="false"
        android:layout_below="@+id/enddate"
        android:background="@drawable/blue_thumb"
        android:text="Submit"
        android:textColor="@android:color/white" />

</RelativeLayout>

以下是列表视图的点击代码段:

        listview.setOnItemClickListener( new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View view,
                    int position, long id) {
                long audit_id;
                try{
            audit_id = (new CustomListAdapter(HomeList.this, c).getAuditID(position));


                changeTileStatus(audit_id,"opened");
                System.out.println("listClicked");
                sendAuditAndIntent(audit_id);
                }catch(Exception e)
                {
             System.out.println("ERROR @ HOMELIST list onClick: "+e);
                }



            }

            private void sendAuditAndIntent(long audit_id) { //sends audit id and api key

                Intent intent = new Intent(HomeList.this,ChapterActivity.class );
                Bundle extras= new Bundle();
                extras.putString("audit_id",String.valueOf(audit_id));
                extras.putString("api_key", api_key);
                intent.putExtras(extras);
                startActivity(intent);

            }

            private void changeTileStatus(long audit_id, String value) {

                AuditTableManager tile= new AuditTableManager(HomeList.this);
                tile.open();
                tile.updateEntry(audit_id, value);
                tile.close();

            }
        });

2 个答案:

答案 0 :(得分:1)

如果单元格包含可单击的视图,则不会调用OnItemClickListener。这是Android功能。您可以通过OnClickListener处理点击次数 - 然后将其设置为您的两个按钮(而不是listView本身)。

在适配器中:

public View onCreateView(..., final int position){

      ...

      convertView.findViewById(R.id.button1).setOnClickListener(new OnClickListener(){
            public void onClick(View view){
                itemClickedAction1(position);
            }

      });
      convertView.findViewById(R.id.button2).setOnClickListener(new OnClickListener(){
            public void onClick(View view){
                itemClickedAction2(position);
            }

      });
      ...
}

答案 1 :(得分:0)

在自定义行TextView

中尝试android:Focusable="false"android:clickable="false"