我在list_item_layout中有两个textview和一个imageview我想在点击时对每个视图执行一些操作。我该怎么做?还要在列表项目布局上长按时执行删除操作。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/rectangle_shadow"
android:orientation="horizontal">
<TextView
android:id="@+id/t1"
android:layout_width="match_parent"
android:fontFamily="monospace"
android:minHeight="30dp"
android:layout_height="wrap_content"
android:textSize="20sp" />
<TextView
android:layout_margin="2dp"
android:id="@+id/t2"
android:layout_gravity="center_vertical"
android:textStyle="italic"
android:layout_width="0dp"
android:layout_weight="0.4"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/word_list_popup_menu_button"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="10dp"
android:layout_marginRight="10dp"
android:layout_gravity="center_vertical"
android:alpha="0.5"
android:background="@null"
android:src="@drawable/ic_more_vert_black_24px" />
</LinearLayout>
答案 0 :(得分:0)
在适配器的OnClickListener
方法中为每个视图设置getView()
:
public View getView(int position, View convertView, ViewGroup viewGroup) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_layout, parent, false);
viewHolder = new ViewHolder();
viewHolder.t1 = convertView.findViewById(R.id.t1);
viewHolder.t1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
viewHolder.t2 = convertView.findViewById(R.id.t2);
viewHolder.t2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
viewHolder.word_list_popup_menu_button = convertView.findViewById(R.id.word_list_popup_menu_button);
viewHolder.word_list_popup_menu_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
TextView t1;
TextView t2;
ImageView word_list_popup_menu_button;
}
答案 1 :(得分:0)
如果您按照RecyclerView
概述的guides进行操作,他们会解释您如何使用ViewHolders
绑定到您的布局以及您感兴趣的观看次数。这是因为RecyclerViews
(和ListViews
)工作的基本方式 - 他们不会立即保留所有项目,而是重新使用视图来提高效果。
指南中的所有内容,我和其他人从中学到的东西!