我有一个带有ListView项目的ViewSwitcher。目标是点击一个列表项,在ViewSwitcher视图之间切换。点击按预期工作,但滚动离开一个被点击的项目,然后返回,有时更改哪个项目显示的第二个视图从ViewSwitcher。
下面是我的ListView项目布局,ViewSwitcher是@+id/ViewSwitcher:
<?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/details并调用.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/details实际上并不是唯一的,因此当滚动时会发生未定义的行为。
如果是这样的话,那么如何为每个ViewSwitcher分配一个唯一的ID,或者如何找到调用.showNext()的正确的ViewSwitcher?
发布于 2011-08-10 00:09:21
您的错误代码在
// Cursor/Adapter code here to populate list from SQLite DB.请把密码寄出去
然而,下面是一些提示
ArrayAdapter
的状态
一个简单的方法是使ArrayList成为ArrayList of ViewSwitchers
https://stackoverflow.com/questions/7004311
复制相似问题