首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewSwitcher作为ListView项-如何在正确的ViewSwitcher项上调用.showNext()?

ViewSwitcher作为ListView项-如何在正确的ViewSwitcher项上调用.showNext()?
EN

Stack Overflow用户
提问于 2011-08-09 23:36:53
回答 1查看 2.2K关注 0票数 0

我有一个带有ListView项目的ViewSwitcher。目标是点击一个列表项,在ViewSwitcher视图之间切换。点击按预期工作,但滚动离开一个被点击的项目,然后返回,有时更改哪个项目显示的第二个视图从ViewSwitcher。

下面是我的ListView项目布局,ViewSwitcher是@+id/ViewSwitcher:

代码语言:javascript
复制
<?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()。

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-10 00:09:21

您的错误代码在

代码语言:javascript
复制
// Cursor/Adapter code here to populate list from SQLite DB.

请把密码寄出去

然而,下面是一些提示

ArrayAdapter

  • Add
  1. 扩展了ArrayList和
  2. 中的所有项目,在ArrayList中保持每个ViewSwitcher

的状态

一个简单的方法是使ArrayList成为ArrayList of ViewSwitchers

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7004311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档