2013-10-13 45 views
0

奇怪的是,我添加两个按钮后,我的listView的onClick不再有效:提交并显示结果。 这是列表视图xml。ListView行不可点击(添加两个按钮后)

<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(); 

      } 
     }); 
+0

试试这个View.getFocus()尝试android:Focusable="false"android:clickable="false";为排。 –

+0

我试过为xml中的行,没有奏效。 – user2871937

回答

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); 
      } 

     }); 
     ... 
} 
+0

但我也需要点击位置,如果我使用onClickListener(),我将如何得到? – user2871937

+0

http://developer.android.com/reference/android/widget/AdapterView.html#getPositionForView%28android.view.View%29 does not work –

+0

如果我使用onClickListener作为listview,Java返回一个错误。 Logcat要求我改用onItemClick。 – user2871937

0

在自定义行的TextView