2015-02-09 68 views
0

当我单击列表项时,只有第一项给我所需的响应。并单击其他项目仅调用第一个项目的结果。这是为什么发生?Android列表视图示例

list = (ListView) findViewById(R.id.list); 
list.setAdapter(new Second(this)); 
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     LinearLayout linear=(LinearLayout)findViewById(R.id.linear); 
     if(linear.getVisibility()==View.GONE){ 
      linear.setVisibility(View.VISIBLE); 
     } 
     else { 
      linear.setVisibility(View.GONE); 
     } 
    } 
}); 
+0

问适配器的视图! – 2015-02-09 09:51:40

+0

post xml ......... – 2015-02-09 09:51:49

回答

0

尝试LinearLayout linear=(LinearLayout)view.findViewById(R.id.linear);

0

Single_row.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1"> 

    <ImageView 
     android:src="@drawable/player1" 
     android:layout_width="61dp" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView" 
     android:layout_weight="0.07" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="10dp" /> 

    <TextView 
     android:layout_width="286dp" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="MS Dhoni" 
     android:id="@+id/textView" 
     android:layout_gravity="right" 
     android:layout_weight="0.07" 
     android:layout_alignTop="@+id/imageView" 
     android:layout_toRightOf="@+id/imageView" 
     android:layout_toEndOf="@+id/imageView" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="WK Batsman(C)" 
     android:id="@+id/textView2" 
     android:layout_below="@+id/textView" 
     android:layout_toRightOf="@+id/imageView" 
     android:layout_alignRight="@+id/textView" 
     android:layout_alignEnd="@+id/textView" 
     android:textStyle="bold"/> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/linear" 
     android:orientation="horizontal" 
     android:layout_below="@+id/textView2" 
     android:visibility="gone"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/textview3" 
      android:textStyle="bold" 
      android:textAppearance="?android:attr/textAppearanceMedium" 

      /> 

     </LinearLayout> 
</RelativeLayout> 

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:scrollbars="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 


    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/list" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

</RelativeLayout> 
0

findViewById()应该被点击的view使用,否则会始终返回它找到的第一个给定的ID。 因此改线:
LinearLayout linear=(LinearLayout)findViewById(R.id.linear)
到:
LinearLayout linear=(LinearLayout)view.findViewById(R.id.linear)

+0

thanku ..它为我工作。 – 2015-02-09 10:04:06

+0

我应该怎么做才能使一个项目扩大。 ? – 2015-02-09 10:04:39

+0

list.setOnItemClickListener(新AdapterView.OnItemClickListener(){ @Override 公共无效onItemClick(适配器视图父,浏览视图,INT位置,长ID){ 的LinearLayout线性=(的LinearLayout)view.findViewById(R.id.linear ); 如果(linear.getVisibility()== View.GONE){ linear.setVisibility(View.VISIBLE); }否则{ linear.setVisibility(View.GONE); } } }); 当我点击Listitem时,它展开。但是当我点击下一个项目时,上一个会让机器人崩溃。那么该怎么做呢? – 2015-02-09 10:37:58