2010-04-30 22 views

risposta

140

è possibile utilizzare il tag requestFocus:

<Button ...> 
    <requestFocus /> 
</Button> 

Trovo strano però che l'auto-concentra uno dei pulsanti, non ho osservato che il comportamento in una qualsiasi delle mie opinioni.

+0

Sì, è successo con due delle mie applicazioni ora. Suppongo che potrei richiedere Focus su un elemento che non cambia come un TextView o non sarebbe consentito? – stealthcopter

+3

Credo che funzionerà su qualsiasi visualizzazione che sia focalizzabile. – Matthias

+1

@stealthcopter: puoi dirmi quale versione di Android stai utilizzando. Sto usando 2.1 e 2.2, ma requestFocus non funziona. – anticafe

21

Impostare sia :focusable sia :focusableInTouchMode su true e chiamare requestFocus. Fa il trucco.

+1

finalmente trovato questo È il soluzione, grazie – unruledboy

+0

Sì, questa è la vera soluzione per risolverlo. Grazie Anders – GkhnSr

+0

Ancora non funziona quando c'è un EditText. – m0skit0

3

@Someone Da qualche parte ho usato questo per obiettivo chiaro:

editText.clearFocus(); 

e aiuta

+0

Non funziona in Android 2.3.3. –

54

@Someone Da qualche parte, ho provato tutto quanto sopra senza alcun risultato. La correzione che ho trovato è da http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android. In sostanza, è necessario creare un layout invisibile appena sopra il pulsante problematico:

<LinearLayout android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:layout_width="0px" 
       android:layout_height="0px" > 
    <requestFocus /> 
</LinearLayout> 
+0

Sono stato in grado di concentrarsi su un AlertDialog e abilitare focusableintouchmode mi ha aiutato a farlo bene. In sostanza, ecco come: alert.show(); alert.getButton (AlertDialog.BUTTON_POSITIVE) .setFocusableInTouchMode (true); alert.getButton (AlertDialog.BUTTON_NEGATIVE) .requestFocus(); –

+1

Grazie! Questa era la ** sola ** soluzione che funzionava nel mio caso. Anche se l'ho usato leggermente diverso; Ho messo il focus su un 'RelativeLayout' contenente' EditText'. – kaka

6

Utilizzare il codice qui sotto,

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody); 
tableRow.requestFocus(); 

che dovrebbe funzionare.

11

Ho solo aggiungere questa riga di codice in onCreate():

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Problema risolto.

+0

Funziona su Android 2.3.3. –

17

Ho trovato che questo ha funzionato meglio per me.

In AndroidManifest.xml <activity> element inserirlo android:windowSoftInputMode="stateHidden"

Questa nasconde sempre la tastiera quando entra l'attività.

+1

Impressionante .. Hai letto la mia mente .. :) :) –

Problemi correlati