【问题标题】:Iterate through ImageButtons giving focus Android遍历 ImageButtons 给予焦点 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 小部件已经可以聚焦了。在我看来,您正在为ImageButtons 使用自定义外观,因此为了处理聚焦状态(即,以不同的视觉外观显示按钮),您必须为按钮提供适当的可绘制对象。我认为您无需担心在代码中处理焦点状态。我相信您只需要为按钮提供onClickListener 而不必担心哪个控件被聚焦。如果您需要一些代码的正确答案,请告诉我。最好的问候。
  • ps.:顺便说一下,这是大卫,来自您的“一美元梦想”活动! :) 很高兴在这里看到你有这么好的目标。
  • 我认为他是说鼠标不会移到按钮上,只是会在屏幕上的某个位置单击它。按钮焦点将通过其他方式更改。因此,我不认为他只想在每个特定按钮上使用 OnClickListener。我不知道,也许我理解错了。
  • thomas.cloud,你是对的。 ImageButtons 必须以固定的间隔一个一个地聚焦。然后,光标在哪里都没有关系,当用户点击鼠标按钮时,焦点必须被激活

标签: android imagebutton


【解决方案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。祝你好运。

【讨论】:

  • 我相信他可以自己设置监听器并查看调用视图。
猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 2012-11-14
  • 2013-03-01
  • 2012-11-16
  • 2013-02-20
  • 2016-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多