2012-12-26 18 views
10

Attualmente sto sviluppando un'applicazione con Samsung Galaxy Tab 2 come dispositivo.Force FullScreen su EditText in Android

My Code in XML è:

<EditText 
    android:id="@+id/analysis_text" 
    style="@style/icon_text" 
    android:imeOptions="actionDone" 
    android:inputType="textMultiLine" 
    android:onClick="onBtnClicked" 
/> 

Quando questo codice viene eseguito, la modalità di immissione dei dati a schermo intero (modalità Extract) viene attivato automaticamente solo in determinate situazioni.

Vorrei che i miei utenti ottenessero una schermata di immissione dati completa durante la modifica del testo in questo controllo, indipendentemente dalla schermata o dal posizionamento del controllo.

Un'altra frase di questa domanda: Come si impone la modalità di immissione dei dati a schermo intero per le caselle EditText nella mia attività, indipendentemente dal contenuto?

+0

Hai provato android: layout_width = "fiil_parent" android: layout_height = "fill_parent" –

+0

Grazie Usman curdo, ma la mia situazione è leggermente diversa, ho sei tali scatole, quindi voglio loro di espandersi a pieno schermata solo quando si verifica l'immissione di dati. – skv

+0

Vai per AutoCompleteTectView ... –

risposta

5

Ho risolto questo problema, non proprio risolto, ma ho trovato un valido work-around.

La soluzione è che ho progettato un editor di testo (che è simile al fullscreen UI) e al clic di ciascuna di queste EditBox es la nuova attività interfaccia utente è triggerred (con il startActivityForResult() in modo che il controllo una volta che essi sono stati completati viene consegnato torna all'attività di chiamata) e dopo il completamento della modifica il testo viene ritrasferito nella schermata principale.

Ho anche assicurato che le caselle che trasferiscono il controllo non si concentrino in modo che trasferiscano immediatamente il controllo alla nuova interfaccia utente.

In questo modo sono stato in grado di implementare un pulsante di annullamento, che attualmente consente all'utente di tornare indietro senza salvare le modifiche apportate involontariamente.

Sono aperto a nuove idee, ma questo ha funzionato per me.

Codice in Activity:

public void onBtnClicked(View v) { 
    EditText current_text_box = (EditText) v; 

    Intent intent = new Intent(ObservationActivity.this, 
      TexteditorActivity.class); 
    intent.putExtra("start_text", current_text_box.getText().toString()); 
    intent.putExtra("start_position", current_text_box.getSelectionStart()); 
    startActivityForResult(intent, v.getId()); 
} 

Codice in XML:

<EditText 
    android:id="@+id/observation_text" 
    style="@style/icon_text" 
    android:focusable="false" 
    android:imeOptions="flagNoExtractUi" 
    android:inputType="textMultiLine" 
    android:onClick="onBtnClicked" > 
</EditText> 

Per creare l'interfaccia utente a schermo intero ho usato il codice, è possibile utilizzare qualsiasi simile (http://android-richtexteditor.googlecode.com/)

+2

Questa è un'idea geniale, sono nella stessa identica situazione e ho deciso di seguire le tue orme :) Saluti – Bruce

+0

Questa è davvero una buona soluzione. Si prega di verificare la mia domanda qui. E fammi sapere se ti sei imbattuto in questa situazione. http: // StackOverflow.it/questions/29786797/requestfocus-is-making-the-scrollview-to-jump-even-the-view-is-well-over-the-a –

+0

Affrontare 404. Aiuto –

0

You Can Prova This

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus){ 
       yourEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
      } 
     } 
    }); 

Importa layoutParam del layout principale. La tua risposta funzionerà anche bene.