我想單擊列表視圖項中的特定子視圖。如何點擊特定的列表視圖項子視圖
考慮ListView
的項目。每個項目都是具有子視圖的複合視圖。
我想首先選擇特定的列表項目,並使用此項目視圖查找具有特定id的子項並執行單擊。
這裏是我的代碼獲取列表項,但我試圖繼續這個鏈進一步實現所需的目標,但我找不到合適的方法。
onData(anything()).inAdapterView(withId(R.id.list_view_books)).atPosition(0).??
能否請你幫忙找到一種方法,點擊所選項目與id
子視圖(在這種情況下,在0度位置) - R.id.button_delete
。
我將不勝感激任何幫助。
編輯*
onData(anything()).inAdapterView(withId(R.id.list_view_books)).atPosition(0)
工作正常,我可以得到一個元素,但我不知道如何去點擊這個元素的子元素。
這是我的項目的XML文件,如果有幫助。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relative_layout_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/rounded_corner"
android:padding="3dp">
<RelativeLayout
android:id="@+id/relative_layout_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp">
<ImageView
android:id="@+id/image_view_color"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:contentDescription="@null"
android:padding="15dp"
android:src="@drawable/ic_add_large" />
<EditText
android:id="@+id/edit_text_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="15dp"
android:layout_toEndOf="@+id/image_view_color"
android:layout_toLeftOf="@+id/button_accept"
android:layout_toRightOf="@+id/image_view_color"
android:layout_toStartOf="@+id/button_accept"
android:ellipsize="none"
android:textColor="@color/white"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDuration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/edit_text_name"
android:layout_alignStart="@+id/edit_text_name"
android:layout_below="@+id/edit_text_name"
android:layout_marginTop="10dp"
android:paddingBottom="10dp"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="Date info" />
<com.beardedhen.androidbootstrap.BootstrapButton
android:id="@+id/button_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/button_remove"
android:layout_toStartOf="@+id/button_remove"
android:layout_centerVertical="true"
android:layout_margin="5dp"
bootstrap:bb_icon_left="fa-pencil"
bootstrap:bb_roundedCorners="true"
bootstrap:bb_type="warning" />
<com.beardedhen.androidbootstrap.BootstrapButton
android:id="@+id/button_accept"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/button_remove"
android:layout_toStartOf="@+id/button_remove"
android:layout_centerVertical="true"
android:layout_margin="5dp"
bootstrap:bb_icon_left="fa-check"
bootstrap:bb_roundedCorners="true"
bootstrap:bb_type="success" />
<com.beardedhen.androidbootstrap.BootstrapButton
android:id="@+id/button_remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_margin="5dp"
bootstrap:bb_icon_left="fa-trash-o"
bootstrap:bb_roundedCorners="true"
bootstrap:bb_type="danger" />
</RelativeLayout>
<LinearLayout
android:id="@+id/linear_layout_filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/relative_layout_container"
android:layout_marginBottom="15dp"
android:layout_marginEnd="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginStart="15dp"
android:orientation="horizontal"
android:visibility="visible"
android:weightSum="2">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:id="@+id/text_view_from"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_margin="5dp"
android:gravity="center"
android:text="@string/duration_start"
android:textColor="@color/white"
android:textSize="25sp"
android:textStyle="bold" />
<com.beardedhen.androidbootstrap.BootstrapButton
android:id="@+id/button_briefing_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/text_view_from"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
bootstrap:bb_icon_left="fa-calendar"
bootstrap:bb_roundedCorners="true"
bootstrap:bb_type="primary"
tools:text="test" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:id="@+id/text_view_to_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_margin="5dp"
android:gravity="center"
android:text="@string/duration_end"
android:textColor="@color/white"
android:textSize="25sp"
android:textStyle="bold" />
<com.beardedhen.androidbootstrap.BootstrapButton
android:id="@+id/button_briefing_to"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/text_view_to_date"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
bootstrap:bb_icon_left="fa-calendar"
bootstrap:bb_roundedCorners="true"
bootstrap:bb_type="primary"
tools:text="test" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
而且我的適配器
public class CustomAdapter extends ArrayAdapter<Book > implements View.OnClickListener{
private ArrayList<Book> dataSet;
Context mContext;
// View lookup cache
private static class ViewHolder {
Button deleteButton;
// Other fields
}
public CustomAdapter(ArrayList<Book > data, Context context) {
super(context, R.layout.list_view_item_book, data);
this.dataSet = data;
this.mContext=context;
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.button_delete:
// Delete
break;
.............
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Book dataModel = getItem(position);
ViewHolder viewHolder; // view lookup cache stored in tag
final View result;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.list_view_item_book, parent, false);
// Find views
result=convertView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
result=convertView;
}
viewHolder.deleteButton.setOnClickListener(this);
return convertView;
}
}
你是如何實現'ListView'?你有什麼?,使用表現出一定的代碼適配器。 – leobelizquierdo
@leobelizquierdo請參閱我的更新 – gzbuaapzroyn
@gzbuaapzroyn您應該分享整個項目JAVA CLASS ...而不是將完整的項目xml發送給我們。謝謝 – ymz