如何仅在一行上使用ViewSwitcher

时间:2013-10-23 12:41:57

标签: android android-listview viewswitcher

我正在尝试将viewSwicther添加到listview中。我想要的是,当一个项目被长时间点击时,该字段将被转换为EditText。目前,列表顶部的元素始终从TextView转换为EditText。 我有一个基于baseAdapter的自定义适配器。

代码如下所示;

    listView.setOnItemLongClickListener(new OnItemLongClickListener(){
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            int size = findSizeOfArray();
            if(position == (size-1)){
                ViewSwitcher switcher = (ViewSwitcher)findViewById(R.id.my_switcher);
                switcher.showNext();
                preAdapter.notifyDataSetChanged();
            }
            return true;
        }
    });
    preAdapter.notifyDataSetChanged();

1 个答案:

答案 0 :(得分:0)

我认为您必须找到并设置LongClick位置,但是您应该将此位置传递到自定义适配器,然后在自定义适配器中捕获此位置并设置GlobalVariable以保持您的选择位置,然后在{ {1}}函数您可以检查如果getView()相关位置等于您从主活动中收到的所选位置,那么您可以在列表getView()函数内部实现ViewSwitcher / p>