2012-02-16 78 views
0

我有一個活動多個按鈕。每一個按鈕打開一個單獨的AlertDialog。當應用程序啓動時,我通過鼠標點擊一個按鈕,我想點擊的按鈕來獲得集中..所以我可以在d盤按鍵過於事後導航。但它不和,甚至更糟的是,焦點有時永遠失去了,如果在活動中的任何其他項目沒有焦點......這樣我就可以使用d-板按鍵無法瀏覽...聚焦點擊的按鈕在Android活動

我要澄清,這是不是因爲AlertDialog是後actionItem.requestFocus(打開)設置..我檢查通過註釋對話開幕代碼太..但沒有運氣

我想如下做到這一點:

public void buttonClicked(View actionItem){ 

    //Set focus on clicked button -- but this does not work 
    actionItem.requestFocus(); 

    switch(actionItem.getId()){ 
    case R.id.btnLogin: 
     //Show AlertDialog 1 
     break; 
    case R.id.btnInfo: 
     //Show AlertDialog 2 
     break; 
    case R.id.btnClose: 
     //Show AlertDialog 3 
     break; 
    } 
} 

我想單擊按鈕有foc我們之前任何AlertDialog打開..所以當AlertDialog關閉,點擊按鈕將有焦點。

buttonClicked事件與多個按鈕註冊..我進行如下設置:

<Button 
    android:id="@+id/btnClose" 
    style="@style/button" 
    android:onClick="buttonClicked" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:drawableLeft="@drawable/close" 
    android:focusable="true" 
    android:text="Exit" /> 

<Button 
    android:id="@+id/btnInfo" 
    style="@style/button" 
    android:onClick="buttonClicked"     
    android:layout_marginRight="5dp" 
    android:layout_toLeftOf="@+id/btnClose" 
    android:layout_centerVertical="true" 
    android:drawableLeft="@drawable/information" 
    android:focusable="true" 
    android:text="About" /> 

buttonClicked功能調用的每個button'c單擊但按鈕沒有獲得焦點。 ..

任何想法ÿ?

回答

0

嘗試中而不是在方法的開始調用requestFocus()方法,把它的每個殼體的內部。然後你可以確定它是你設定的正確元素。

例子:

switch(actionItem.getId()){ 
case R.id.btnLogin: 
actionItem.requestFocus() 
    break; 
} 

這是我最好的猜測,它爲我工作。

好運:)

+0

謝謝你的答案..我試過你的方式,但它沒有工作 – Aamir 2012-02-16 15:46:21