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 :
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
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 // ... } } // ... }
Merci beaucoup
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 } }![]()
Partager