2017-09-12 5 views
-1

Je suis nouveau pour le développement android.Ajout/suppression de texte d'édition et d'un retrait (X) sur clic

Je veux ajouter EditText et un bouton de suppression (X) quand ils cliquent sur un bouton (appelé "contact"). Alors qu'il y aura plusieurs contacts. En cliquant sur le bouton Supprimer, le bouton EditText ajouté avec le bouton Supprimer doit être supprimé.

Ce sera quelque chose comme ça,

X ---------

--------- X

------- - X

--------- X

——————— 
|contact| 
——————— 

Si j'utilise tout adaptateur, h Vous devez ajouter l'EditText vide et un bouton Supprimer (X). Si pas d'autres meilleures options? Enfin, je dois obtenir toutes les valeurs entrées dans le EditText. REMARQUE: Au clic de "contact", il convient d'ajouter EditText et un bouton de suppression (X).

Veuillez me donner un moyen clair et simple de le faire.

Merci!

+0

Jetez un oeil à [ce] (https://stackoverflow.com/questions/24320577/edittext-and-buttons-in-listview-android) –

+0

poser les questions suivantes. https://stackoverflow.com/questions/12663443/add-delete-option-with-dynamically-generated-edittext?noredirect=1&lq=1 https://stackoverflow.com/questions/43666301/android-dynamically-add-edittext -in-linearlayout –

+0

Copie possible de [Ajouter une option de suppression avec editText généré dynamiquement] (https://stackoverflow.com/questions/12663443/add-delete-option-with-dynamically-generated-edittext) –

Répondre

0

Vous pouvez utiliser un LinearLayout avec orientation réglé sur vertical. Vous pouvez ensuite créer une autre disposition avec vos EditText et Button et les ajouter dynamiquement au LinearLayout dans la méthode onClick pour le bouton de contact.

N'oubliez pas de générer des ID pour votre point de vue nouvellement ajoutés pour pouvoir les retrouver plus tard

Le bouton X va alors supprimer tout son parent de la mise en page

+0

Merci! Cette approche fonctionne – ir05

+0

bon .. n'oublie pas d'accepter la réponse pour que d'autres personnes puissent en bénéficier aussi –

0

Créer une LinearLayout et le bouton. Sur le bouton, cliquez sur la méthode suivante. En outre, créez une liste dans votre méthode OnCreate pour suivre toutes les éditions ajoutées & récupérer des textes plus tard.

private void createNewEditText() { 
    EditText editText = new EditText(this); 
    editText.setMaxLines(1); 
    editText.setSingleLine(true); 
    editText.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
    editText.setCompoundDrawablesWithIntrinsicBounds(null, null, VectorDrawableCompat.create(resources, R.drawable.ic_clear_black_24dp, null), null); 
    editText.setOnTouchListener(new View.OnTouchListener { 
     @Override 
     Boolean onTouch(View view,MotionEvent event) { 
      val DRAWABLE_BOTTOM = 3 
      val DRAWABLE_RIGHT = 2 
      val DRAWABLE_LEFT = 0 
      val DRAWABLE_TOP = 1 
      if (event.getRawX() >= (editText.right - editText.getCompoundDrawables()[DRAWABLE_RIGHT].bounds.width())) { 
       editTextList.remove(editText); 
       parentLinearLayout.removeView(editText); 
       return true; 
      } 
      return false; 
     } 


    }) 
    editText.requestFocus(); 
    editText.setText(voicetext); 
    editTextList.add(editText); 
    parentLinearLayout.addView(editText); 
}