我有一个带有自定义 View 的 Activity ,它在其中扩展了 EditText
。通常,当有人长按 EditView 时,会弹出一个菜单
,要求用户选择输入法。
我已经覆盖 onLongClick
以不显示此菜单,因为
我使用自己的输入法。但是,我希望 ListActivity
在用户长按 EditText
(或者更确切地说是我的扩展 EditText 的 View )时启动。 但似乎 View 不能激发 Intent ,只能激发 Activity ,对吗?
很好,所以我尝试从生成类似 EditText 的 View 的 Activity 中捕获长按。但是在我的类似 EditText 的 View 中,我已经使用了 longclick,或者在重写的 onLongClick()
中通过将其设置为 true 来避免 “请选择输入法” 菜单出现,或者如果返回 false,那么那个菜单就会出现并消耗我的 longclick。在这两种情况下, Intent 都不会触发...
简而言之: 用户长按一个 EditText,我想启动一个自定义 ListActivity。我该如何实现?
编辑:
所以我在Context对象
中找到了startActivity
。但我会让用户从列表中选择一个项目。然后该项目将出现在 EditText
中,所以我认为我必须使用 startActivityForResult
,顺便说一句,它不会出现在 Context 对象
中:(
编辑 2:
如何从使用 startActivity
启动的 Activity 中获取结果?
最佳答案
您不需要 Activity 来 start another Activity ,而是一个上下文对象。
这里有两个选择。您可以使用自定义构造函数或 setter 方法将上下文传递到自定义 View 中。或者 OnLongClickListener 必须在 Activity 中实现并从那里设置为自定义 EditText。
关于Android:从 View 中触发 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699584/