2016-10-06 5 views
1

J'ai un petit problème. dans mon activité j'ai un bouton et dans mon fragment j'ai des zones de texte.L'activité fragments Android

Maintenant, quand je clique sur le bouton je veux voir une boîte de dialogue avec les informations de l'textboxes.Below vous pouvez voir ma boîte de dialogue qui se trouve dans mon activité

public void onFragmentInteraction(Person uri) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage("test"); 
     builder.show(); 

    } 

Mon ActionListener de mon bouton est dans mon activité et mes boîtes de texte sont dans mon fragment. J'ai essayé ceci avec un paquet mais ceci n'a pas fonctionné.

Quelqu'un peut m'aider avec ça?

+0

Comment définir l'écouteur? La signature de cette méthode est incorrecte pour un onClick(). –

Répondre

0

Si vous avez vraiment devez garder votre bouton et textviews dans l'activité séparée/composants alors vous devrez autoriser une certaine communication entre les deux.

est ici un tutoriel bien sur la façon de le faire - https://developer.android.com/training/basics/fragments/communicating.html

Une façon vraiment difficile d'obtenir ce que vous voulez est de faire passer les changements de texte de votre textview et les stocker dans votre activité.

quelque chose comme -

 textView.addTextChangedListener(new TextWatcher() { 
     @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override public void afterTextChanged(Editable s) { 
      ((ActivityName)getActivity()).setSomeText(s.toString()); 

     } 
    }); 

dans l'activité que vous créez ensuite une méthode publique correspondant à

public void setSomeText(String someText) { 
    this.someText = someText; 
} 

vous pouvez alors accéder "someText" dans l'activité.

Cela devrait être fait par le biais d'une interface

0

Vous devez mettre l'auditeur dans le fragment et le mettre en Java par programme plutôt que dans le fichier XML.