要在包含Spinner的ListView中找到行,可以使用ListView的适配器(Adapter)。
首先,在布局文件中定义一个ListView和一个Spinner,如下所示:
然后,在Java代码中,创建一个自定义适配器(Adapter),并将其设置给ListView,如下所示:
ListView listView = findViewById(R.id.listView);
Spinner spinner = findViewById(R.id.spinner);
// 创建一个自定义适配器
MyAdapter adapter = new MyAdapter(this, dataList);
// 设置适配器给ListView
listView.setAdapter(adapter);
在自定义适配器的getView方法中,可以通过调用ListView的getChildAt方法来获取包含Spinner的行,如下所示:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 获取包含Spinner的行
View rowView = super.getView(position, convertView, parent);
// 获取Spinner
Spinner spinner = rowView.findViewById(R.id.spinner);
// 设置Spinner的适配器或监听器等
// ...
return rowView;
}
通过调用listView.getChildAt(position)
可以获取指定位置的行,然后可以在该行上找到包含的Spinner,进而设置适配器或监听器等。
注意:这种方法只能获取可见的行,如果要获取不可见的行,可以通过ListView的数据源来获取。