Bonjour tout le monde,

Je suis étudiant et débutant en java et android.

Je suis en train de modifier une application android qui permet de configurer des beacons bluetooth. Avec l’application d’origine on peut seulement paramétrer les beacons un par un, de ce fait je souhaite modifier l'application pour pouvoir en configurer un bon nombre automatiquement.

J'ai un problème lorsque je souhaite modifier un élément dans le layout d'une classe depuis un autre classe.

Depuis la classe Main j’arrive bien à interagir avec les éléments du layout Main. Mais depuis la classe Main, je n’arrive pas à interagir avec d’autre layout (PasswordDialog dans mon cas). Cela fait plusieurs jours que je galère dessus, j’ai essayé des réponses à des post similaires mais sans succès car la configuration de mes classes est assez spéciale et je ne veux pas trop les modifier pour ne pas altérer le fonctionnement de l'application. Si quelqu'un a des pistes je lui en serais très reconnaissant

La classe main :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
public class Main extends BaseActivity implements RadioGroup.OnCheckedChangeListener, MokoScanDeviceCallback, AdapterView.OnItemClickListener {
 
	@Override
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.main);
 
	// ...
 
	}
 
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
            // ...
            final PasswordDialog dialog = new PasswordDialog(this); // Une autre fonction qui fait déjà appel à la classe PasswordDialog qui m'intérésse
            dialog.setSavedPassword(mSavedPassword);
            dialog.setOnPasswordClicked(new PasswordDialog.PasswordClickListener() {
            // ...
			}
 
	}	
 
    @OnClick({R.id.iv_about, R.id.iv_refresh, R.id.bt_auto})
    public void onClick(View view) {
        switch (view.getId()) {
            // ...
            case R.id.bt_auto: // Quand je clique sur le bouton bt_auto, le code ci-dessous s'éxécute
                final PasswordDialog dialog = new PasswordDialog(this); 
                dialog.AutoSetPassword("Moko4321"); // la méthode que j'essaye de lancer
			// ...
		}
	}
	// ...
}
Voici maintenant la classe PasswordDialog qui est dans un autre package. Je souhaite modifier un élément du layout passworddialog depuis ma classe Main :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class PasswordDialog extends BaseDialog  {
    @Bind(R.id.et_password) 
    EditText etPassword; // L'élement que je souhaite modifier
 
    public PasswordDialog(Context context) {
        super(context);
    }
 
    // ...
 
    public void AutoSetPassword(String pass) { // Ma méthode pour modifier le EditText
        etPassword.setText(pass); // Ceci ne fonctionne pas
        // et
        ((EditText) findViewById(R.id.et_password)).setText(pass); // Si j'essaye ceci à la place, c'est pareil
    }
}
Merci beaucoup