2017-08-25 13 views
-2

Comment pouvons-nous intégrer un texte de saisie avec un TextView dans Android?Comment obtenir des entrées à plusieurs reprises à partir d'un texte dans Android?

Par exemple, je veux mettre en œuvre ceci:

« Votre nom est ___, c'est le niveau ____ »

Le « ___ » est l'espace vide que l'utilisateur doit remplir avec une entrée spécifiée et je vais vérifier pour la validation.

Veuillez noter qu'il est différent de android:hint.

Comment puis-je l'implémenter?

+1

qu'avez-vous essayé jusqu'à présent? n'importe quel code? – Umair

+0

J'ai une idée de définir horizontalement Textview et EditText, mais je pense que ce n'est pas la solution @Umair –

+2

cela peut être fait avec edittext mais vous devez faire beaucoup de travail. La bonne approche consiste donc à utiliser horizontalement textviews et edittext. – Umair

Répondre

0

Vous pouvez faire un remplir les espaces vides format de type texte à l'aide constante à l'intérieur EditText. Pour ce faire, créez un EditText en XML.

<EditText 
    android:id="@+id/editText" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"/> 

Dans votre classe Java ajoutez le code suivant:

final EditText edittext = (EditText) findViewById(R.id.editText); 
    edittext.setText("Something "); 
    Selection.setSelection(edittext.getText(), edittext.getText().length()); 
    edittext.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      // TODO Auto-generated method stub 
     } 

     @Override 
     public void afterTextChanged(Editable s) { if(!s.toString().contains("Something ")){ 
       edittext.setText("Something "); 
       Selection.setSelection(edittext.getText(), edittext.getText().length()); 

      } 

     } 
    }); 

C'est sortie du code. Ici, la chaîne Quelque chose est statique et ne peut pas être supprimée.

enter image description here

Vous pouvez cacher le soulignement dans EditText en utilisant android:background="@android:color/transparent". Je vous recommande également de désactiver entrer dans l'EditText en utilisant le code:

<EditText 
    android:id="@+id/editText" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:maxLines="1"  <----- add this 
    android:inputType="text"/> <------ and this to disable enter in edittext 
+0

Merci ça marche! , je veux juste vous envoyer une capture d'écran de mon application pour poser une question de plus, comment puis-je trouver votre email? –

+0

S'il vous plaît ajouter la capture d'écran dans votre question comme une modification ou ping-moi sur le chat. – Abhi

0

Vous pouvez essayer comme ça

 <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="30dp" 
     android:textSize="16sp" 
     android:textColor="#000000" 
     android:text="Your Name is" 
     android:id="@+id/textview1" /> 

    <EditText 
     android:layout_width="60dp" 
     android:textSize="16sp" 
     android:layout_height="40dp" 
     android:textColor="#000000" 
     android:id="@+id/edittext1"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="30dp" 
     android:textSize="16sp" 
     android:textColor="#000000" 
     android:text=", This is the Level" 
     android:id="@+id/textview2" /> 

    <EditText 
     android:layout_width="60dp" 
     android:textSize="16sp" 
     android:layout_height="40dp" 
     android:textColor="#000000" 
     android:id="@+id/edittext2"/> 

</LinearLayout> 
+0

Vous pouvez obtenir texte d'edittext avec EditText editText = (EditText) findViewById (R.id.edittext1); Chaîne de caractères string = editText.getText(). ToString(); – MKovac

+0

merci, mais il n'y a pas d'autre solution? parce que j'ai beaucoup de saisie, et je pense que cela me fatigue! :) cela ne peut pas être fait en utilisant simplement edittext? –