假设我有一个3行的列表视图。如果用户单击第1行中的某个按钮,它将展开一个菜单(这只是显示/隐藏的线性布局)。如果他们然后点击第2行中的项目,我想能够折叠第1行中的菜单。这可能吗?如果是这样,怎么样?android从另一行访问listview行
回答
保存对您希望稍后操作的视图的引用。可能包装在final
变量中,那么你将很容易改变。
永远不要这样做。保存引用到列表视图中的视图将导致您的主要问题。只要屏幕关闭,尝试写入视图就会在内部回收视图,最好是导致崩溃。 – CodeFusionMobile 2010-07-06 21:03:30
是的,CSharperWithjava是正确的...这是一个坏主意...... – Ben 2010-07-06 21:42:18
我说,因为我试过它,它的所有越野车... – Ben 2010-07-06 21:50:46
您可以随时使用getContext()
在View
得到一个参考含Activity
,您可以转换为ListActivity
(假设你正在使用的),并调用常用的方法,在那个位置上获取数据ListAdapter:
((ListActivity) v.getContext()).getListAdapter().getItem(1)
然后,你可以操纵你的数据。但是你要和你的ListAdapter致电notifyDataSetChanged()
。
但它很可能是一个很多方便您和您的用户只使用ExpandableListView
,它为您提供了可预见的互动用户已经知道了可扩展的列表。您可以在AOSP的浏览器源代码中查看历史活动以获取真实的示例。如果它不完全符合您的需求,您可以随时从Android源代码中抽取ExpandableListView
本身的代码。
我希望这很容易,不幸的是可扩展列表视图不会做我需要它。另外,我没有使用ListActivity。相反,我有一个ListView,它是在一个布局中,然后由一个正常的活动渲染... – Ben 2010-07-06 21:46:15
那么,你可能应该只使用ListActivity;它仅仅是一个正常活动的轻量级包装,可以非常轻松地跟踪您的ListView/ListAdapter。但是如果你不想或不能出于某种原因,你可以在你的Activity的某个地方保留一个成员变量引用到你的ListView/Adapter,或者你可以这样做(用你的listview的ID代替android。 ((ListActivity)v.getContext())。findViewById(android.R.id.listview).getAdapter()。getItem(1)' 等 – 2010-07-07 14:38:37
- 1. 如何从另一个类访问listview?
- 2. 访问ListView中的行
- 3. 在Gridview RowDataBound中访问另一行?
- 4. Android从自定义ListView访问元素
- 5. 访问从另一个子
- 6. 访问从另一个
- 7. 在Android中访问ListView CheckBox
- 8. 访问控制器,然后从另一个类执行功能
- 9. 锁定访问另一个类,从运行方法
- 10. 在运行时从另一个Erlang外壳访问Mnesia节点
- 11. 访问前一行
- 12. 访问:使用DAO.recordset运行查询,从另一个查询中进行选择
- 13. Android动态ListView过滤行值问题
- 14. Android ListView行背景导致OutOfMemory问题
- 15. 从另一个类访问TextView的Android注解问题
- 16. Android如何从Listview中点击itemid并更新该行的另一列值
- 17. Android WebView - 从另一个iframe中的一个iframe访问类
- 18. 从Android中的OnClickListener充气ListView行?
- 19. ListView行高问题
- 20. 从另一个类访问一个NSMutableArray
- 21. 更新列从一行到另一行
- 22. 在行中单击ListView行和Button的可访问方法?
- 23. 从另一个listview活动执行webview动作
- 24. 的ListView行一个ListView
- 25. 从表中访问多行
- 26. Tab中的Android ListView只显示一行
- 27. Android - 2同一行中的ListView
- 28. 在android listview中设计一行
- 29. ListView- EditText作为一行 - SimpleCursorAdapter - Android 2.3.3
- 30. android listview,不一致的点击行为
你在用人们接近listviews的方式犯了一个常见的错误。你试图从行中控制列表视图,这不是listview的目的。相反,您应该考虑如何通知您的更改活动,以便IT部门能够处理对listview的更改。 – CodeFusionMobile 2010-07-06 21:07:50
CSharperWithJava,你能给出一个代码示例吗?假设你想在第2行中的第2行中的按钮被点击时修改第1行中的TextView的文本....你会怎么做? – Ben 2010-07-06 21:44:36