ListView组件中怎么使item布局文件中的组件隐藏

来源:互联网 发布:软件测试 培训课程 编辑:程序博客网 时间:2024/06/05 20:29
ListView组件中如何使item布局文件中的组件隐藏
比如ListView组件的item的布局文件有2个textview
items.xml

<TextView
  android:id="@+id/ls_id"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_marginLeft="12dip"
  android:textSize="12dip"
  android:singleLine="true" />
   
  <TextView
  android:id="@+id/ls_time"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:gravity="right"
  android:layout_weight="1"
  android:textSize="10dip"
  android:singleLine="true" />


我要使ls_id的组件隐藏,并且单击listview触发事件的时候

ls=(ListView) findViewById(R.id.ls);

 ls.setOnItemClickListener(new OnItemClickListener(){  
  @Override  
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
  long arg3) {  
  
  Toast.makeText(getApplicationContext(),   
  "这里面需要显示那个被点击的item所对应的隐藏的textview的值",  
  Toast.LENGTH_SHORT).show();  
  }
  });

请问谁做过,,想了好久,,无法实现。。。。

------解决方案--------------------
ls_id的组件默认隐藏,直接在布局文件里面设置android:visibility="gone"

点击后显示组件:
在点击事件中有一个参数View arg1

通过arg1.getChildCount获得这个view中的元素数量,
例如:
int childCount = arg1.getChildCount();
for(int i=0; i<childCount; i++)
{
view v = arg1.getChildAt(i);
if(view instanceof TextView)
{
v.setVisibility(0);
break;
}
}

然后通过循环方式判断arg1.getChildAt(i);是否是TextView类型,是的话就显示,然后退出。
0 0