遍历 ImageButtons 给予焦点 Android
Posted
技术标签:
【中文标题】遍历 ImageButtons 给予焦点 Android【英文标题】:Iterate through ImageButtons giving focus Android 【发布时间】:2012-06-21 02:04:42 【问题描述】:我为我的脑瘫女孩开发了一个软件。她在我们的平板电脑中使用它来与我和我的妻子“交流”。
挺好看的。这是一堆“即时”创建的 ImageButton。我的意思是膨胀 XML 代码。
这是一个图像示例:
我只是为我女儿制作的。
我有一个朋友患有肌萎缩侧索硬化症 (ALS)。这是一种可怕的退化性疾病。他只能移动一根手指,我希望他能够使用相同的软件。
为了做到这一点,我必须“迭代”每个 ImageButton,当他想要的那个被聚焦时,他会“点击”鼠标来激活它。
我尝试使用此处描述的内容:
http://developer.android.com/guide/topics/ui/accessibility/apps.html
但它没有用。关于如何做到这一点的任何想法?这对我的 ALS 朋友非常有用。
这是我创建 ImageButtons 的方法:
btn = (ImageButton) LayoutInflater.from(
getBaseContext()).inflate(
R.layout.imagebuttonstyle, fl, false);
我只是使用“OnTouch”事件来处理点击。 imagebuttonstyle 只是一个声明 ImageButton 的 XML 文件。
那么,你们觉得呢?我如何遍历项目以确保当他想要的那个是焦点时,当我的朋友点击他的鼠标时它会被激活?我可以轻松地循环浏览所有项目,但这并不能确保该项目会被他的鼠标激活。
非常感谢任何帮助!
【问题讨论】:
嗨 Carlos,Android 小部件已经可以聚焦了。在我看来,您正在为ImageButton
s 使用自定义外观,因此为了处理聚焦状态(即,以不同的视觉外观显示按钮),您必须为按钮提供适当的可绘制对象。我认为您无需担心在代码中处理焦点状态。我相信您只需要为按钮提供onClickListener
而不必担心哪个控件被聚焦。如果您需要一些代码的正确答案,请告诉我。最好的问候。
ps.:顺便说一下,这是大卫,来自您的“一美元梦想”活动! :) 很高兴在这里看到你有这么好的目标。
我认为他是说鼠标不会移到按钮上,只是会在屏幕上的某个位置单击它。按钮焦点将通过其他方式更改。因此,我不认为他只想在每个特定按钮上使用 OnClickListener。我不知道,也许我理解错了。
thomas.cloud,你是对的。 ImageButtons 必须以固定的间隔一个一个地聚焦。然后,光标在哪里都没有关系,当用户点击鼠标按钮时,焦点必须被激活
【参考方案1】:
你能用OnClickListener吗?见this question,我认为它正在朝着你可以去的方向发展。或者,您可以使整个布局可点击。然后您可以使用isFocused() 来确定要选择的项目。例如:
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear_layout);
linearLayout.setOnClickListener(this);
@Override
public void onClick(View view)
if (view == linearLayout)
if (mingua.isFocused())
//mingua action
else if (pao.isFocused())
//pao action
//etc...
如果您可以将线性布局设置为具有单击侦听器,我不肯定,但如果这不起作用,您可以添加一个覆盖整个屏幕的不可见按钮作为背景层,并在其上设置一个 onClickListener。祝你好运。
【讨论】:
我相信他可以自己设置监听器并查看调用视图。以上是关于遍历 ImageButtons 给予焦点 Android的主要内容,如果未能解决你的问题,请参考以下文章
如何实现 ImageButtons 的绑定,以便仅在加载图像后显示图像?
比较android中的drawables imageButtons