我有一个列表视图,每行有两个项目是两个TextView。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="vertical">
<TextView
android:id="@+id/txtInfo"
android:layout_width="wrap_content"
android:layout_height="30sp"
android:layout_gravity="right"
android:textSize="12sp"
android:visibility="gone"
android:textColor="@android:color/darker_gray" />
<LinearLayout
android:id="@+id/contentWithBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="@drawable/my_textview_border"
android:paddingLeft="10dp"
android:paddingBottom="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/txtMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:padding="10dp"
android:maxWidth="240dp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
现在我想在我用onItemClick(AdapterView<?> parent, View view, int position, long id)
方法单击的行上显示隐藏的TextView,但是如何为每个TextView设置详细ID。我的意思是TextView在我触摸的行中只是可见,而不是在其他行中的所有TextView。
答案 0 :(得分:1)
Activity
implements OnItemClickListener
yourList.setOnItemClickListener(this);
onCreate()
onItemClick
:s
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
TextView tv = (TextView) view.findViewById(R.id.txtMessage);
tv.setVisibility(View.VISIBLE);
}
getView()
arrayAdapter方法:一
public View getView(int position, View convertView, ViewGroup list) {
View element;
if (convertView == null) {
element = View.inflate(ctx, R.layout.yourlayout, null);
} else {
element = convertView;
}
///setup your listview element
return element;
}
修改强>
更改textview的所有数据我将以这种方式工作: yourarrayadater.setupmydata(); yourarrayadater.notifyDataSetChanged()
之后,arrayadapter将使用getView
重绘。
所以,再次使用
public View getView(int position, View convertView, ViewGroup list) {
View element;
if (convertView == null) {
element = View.inflate(ctx, R.layout.yourlayout, null);
} else {
element = convertView;
}
TextView tv = (TextView) element.findViewById(R.id.txtMessage);
///SETUP YOUR tv for each row
return element;
}