我有一个ListView与ViewSwitcher项目。我们的目标是点击一个列表项来切换ViewSwitcher视图。轻击按预期工作,但从轻敲项目滚动,然后返回有时会更改哪些项目正在显示ViewSwitcher的第二个视图。ViewSwitcher作为ListView项目 - 如何在正确的ViewSwitcher项目上调用.showNext()?
这里是我的ListView项布局,ViewSwitcher是@ + ID /详细信息:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content" >
<ViewSwitcher
android:id = "@+id/details"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:measureAllChildren = "false" >
<!-- two views I want to switch between are here -->
</ViewSwitcher>
</RelativeLayout>
我的活动,发现@ ID /细节,并呼吁.showNext()。
public class MyActivity extends ListActivity {
private MySQLiteOpenHelper data;
private SimpleCursorAdapter adapter;
private Cursor cursor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] FROM = { "_id", "_id", "name", "name" };
int[] TO = { R.id.my_list_id, R.id.my_list_id2, R.id.my_list_name, R.id.my_list_name_details };
data = new MySQLiteOpenHelper(this);
cursor = data.myList();
startManagingCursor(cursor);
adapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor, FROM, TO);
setListAdapter(adapter);
ListView list = getListView();
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
ViewSwitcher item = (ViewSwitcher) view.findViewById(R.id.details);
item.showNext();
}
});
}
}
我认为我的问题可能是@ ID /详细信息实际上并没有独特的,滚动时如此不确定的行为发生。
如果是这种情况,那么我该如何为每个ViewSwitcher分配一个唯一的ID或找到正确的ViewSwitcher来调用.showNext()?
的ArrayList?你觉得它没有改变? –
是的,当我向后滚动时,它不被切换,并且一个*不同的*项被切换。 – mjwhitt
示例:列表中的10项,点击#9,向上滚动,点击#2(看不到#9),向下滚动,#9被夹在中间,#10 *被*切换。向上滚动并再次点击#2,向下滚动,并且#9被切换。奇怪的不切换/切换似乎只发生在ListView中视图之外的ViewSwitchers上。 – mjwhitt