Java ListView行不可单击(添加两个按钮后)

Java ListView行不可单击(添加两个按钮后),java,android,android-listview,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

奇怪的是,在我添加了两个按钮:提交和显示结果之后,我的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();

            }
        });
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView arg0,视图,
内部位置,长id){
长审核id;
试一试{
audit_id=(新的CustomListAdapter(HomeList.this,c).getAudited(position));
changeTileStatus(审计id,“已打开”);
System.out.println(“listClicked”);
发送审核内容(审核id);
}捕获(例外e)
{
System.out.println(“ERROR@HOMELIST list onClick:+e”);
}
}
私有void发送审核内容(长审核\u id){//发送审核id和api密钥
意向意向=新意向(HomeList.this,ChapterActivity.class);
Bundle extras=新Bundle();
extras.putString(“audit_id”,String.valueOf(audit_id));
附加putString(“api_键”,api_键);
意图.临时演员(临时演员);
星触觉(意向);
}
私有void changeTileStatus(长审核id,字符串值){
AuditTableManager磁贴=新的AuditTableManager(HomeList.this);
tile.open();
tile.updateEntry(审核id、值);
tile.close();
}
});

如果单元格包含可单击的视图,则不会调用McClickListener。这是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);
            }

      });
      ...
}

在自定义行文本视图中尝试android:Focusable=“false”和android:clickable=“false”,也可以尝试此视图。getFocus();对于行。我尝试了xml中的行,但没有成功。但是我还需要单击位置,如果使用onClickListener(),我将如何获得该位置?如果我对listview使用onClickListener,Java将返回一个错误。Logcat要求我改为使用onItemClick。请参阅我的更新注释,我添加了解释将位置传递给适配器内部OnClick侦听器的代码。