2012-06-19 23 views
4

我開發了一款用於我的大腦麻痹女孩的軟件。她在我們的平板電腦中使用它與我和我的妻子「溝通」。迭代通過ImageButtons給予焦點Android

這很不錯。這是一羣「即時」創建的ImageButton。我的意思是充氣XML代碼。

這裏是一個圖像樣本:

Sample image from my software

我創造了這個只是我的女兒。

我有一位朋友患有肌萎縮側索硬化(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文件。

那麼,你們覺得呢?我如何迭代項目,以確保當他想要的那個焦點時,當我的朋友點擊鼠標時它會被激活?我可以輕鬆地遍歷所有項目,但這並不能確保這個項目將被他的鼠標​​激活。

任何幫助非常感謝!

+0

嗨Carlos,Android的小部件已經可以聚焦了。在我看來,您爲'ImageButton'使用自定義外觀,因此爲了處理焦點狀態(即,在不同的視覺外觀中顯示按鈕),您必須爲該按鈕提供適當的可繪製對象。我不認爲你需要擔心在代碼中處理集中狀態。我相信你只需要在按鈕上提供'onClickListener'而不用擔心哪個控件是關注的。如果你需要一些代碼的正確答案,請讓我知道。最好的祝福。 – davidcesarino

+1

ps .:順便說一句,這是大衛,從你的「一個夢想的一美元」活動! :)很高興見到你在這裏有這樣一個不錯的目標。 – davidcesarino

+0

我想他是說鼠標不會移動到按鈕上,只是它會在屏幕上的某處點擊。按鈕焦點將通過其他方式進行更改。因此,我不認爲他只是想在每個特定的按鈕上使用OnClickListener。我不知道,也許我誤解了。 –

回答

0

您能用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。祝你好運。

+0

我相信他可以自己設置聽衆並檢查呼叫視圖。 – davidcesarino