Bonjour,

j'ai une question sur les intents je crois.

je voudrais updater une EditText qui n'est pas dans la même
Activity que le bouton est cliqué sans pour autant afficher cette
Activity voici un peu de code pour vous montrer ceci :


C'est mon Activity de départ elle semble bien rouler mais si il y a quelque chose de pas correct fait-moi le savoir ! :

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public class MainActivity extends TabActivity {
	private TabHost mTabHost;
 
	//On déclare toutes les variables dont on aura besoin
	Button cmdadd;
 
	private static final int CODE_DE_MON_ACTIVITE = 1;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Resources res = getResources();
 
        mTabHost = getTabHost();
        TabHost.TabSpec spec;
        Intent intent;
 
 
        // tab info
        intent = new Intent(this,InfoActivity.class);
 
        spec = mTabHost.newTabSpec("Info")
        		.setIndicator("Info",res.getDrawable(R.drawable.tabinfo))
        		.setContent(intent);
 
        mTabHost.addTab(spec);
 
        // tab info
        intent = new Intent(this,ResultActivity.class);
 
        spec = mTabHost.newTabSpec("Result")
        		.setIndicator("Result",res.getDrawable(R.drawable.tab_mresult))
        		.setContent(intent);
 
        mTabHost.addTab(spec);
 
        // tab info
        intent = new Intent(this,SettingActivity.class);
 
        spec = mTabHost.newTabSpec("Setting")
        		.setIndicator("Setting",res.getDrawable(R.drawable.tab_setting))
        		.setContent(intent);
 
        mTabHost.addTab(spec);
 
        mTabHost.setCurrentTab(0);
 
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
 
 
}
ici c'est mon activity avec le bouton qui déclanche ma fonction :

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public class InfoActivity extends Activity {
 
	//On déclare toutes les variables dont on aura besoin
	Button cmdadd;
	EditText mass;
 
	private double resultbac;
	private int cptdrink = 0;
	private int intmass = 0;
	private float mlalc = 0;
	private float calmass = 0;
	private float result = 0;
	Intent intent;
 
 
	private static final int CODE_DE_MON_ACTIVITE = 2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_info);
 
        Toast.makeText(getApplicationContext(), "InfoActivity",Toast.LENGTH_LONG).show();
 
        //On récupère tout les éléments de notre interface graphique grâce aux ID
        cmdadd = (Button) findViewById(R.id.btnadd);
        mass = (EditText) findViewById(R.id.txtmass);
 
 
 
 
        //On attribut un écouteur d'évènement à tout les boutons
        cmdadd.setOnClickListener(new View.OnClickListener() {
        	public void onClick(View v) {
        		adddrink();
        	}
 
			private void adddrink() {
 
				intmass = Integer.parseInt(mass.getText().toString());
 
				cptdrink = cptdrink + 1;
 
				mlalc = (float) ((cptdrink * 17) * 0.8);
 
				calmass = (float) (intmass * 0.7);
 
				result = mlalc / calmass;
 
 
 
				//On créé un objet Bundle, c'est ce qui va nous permetre d'envoyer des données à l'autre Activity
				Bundle objetbundle = new Bundle();
				//Cela fonctionne plus ou moins comme une HashMap, on entre une clef et sa valeur en face
				objetbundle.putFloat("bac", result);
 
				intent = new Intent(InfoActivity.this,ResultActivity.class);
 
				//On affecte à l'Intent le Bundle que l'on a créé
				intent.putExtras(objetbundle);
 
				// On démarre l'autre Activity
				 startActivity(intent);
 
 
 
			}
        });
 
    }
 
}
ensuite pour finir l'activity avec le EditText que j'aimerais mettre a jour :

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
public class ResultActivity extends Activity {
 
	//On déclare toutes les variables dont on aura besoin
	float fbac;
	EditText bac;
	TimePicker tp;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Toast.makeText(getApplicationContext(),"ResultActivity",Toast.LENGTH_LONG).show();
        setContentView(R.layout.activity_result);
 
    	//on récupère tous les éléments
 
        bac = (EditText) findViewById(R.id.txtbac);
        tp = (TimePicker) findViewById(R.id.drivetime);
 
 
        //On récupère l'objet Bundle envoyé par l'autre Activity
        Bundle objetbunble  = this.getIntent().getExtras();
 
        //On récupère les données du Bundle
        if (objetbunble != null && objetbunble.containsKey("bac")) {
        	fbac =  objetbunble.getFloat("bac");
        	bac.setText(Float.toString(fbac));
 
 
        }
 
 
    }
 
}
comme première question je me demandais si cela est possible et comment
ajouter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
        bac = (EditText) findViewById(R.id.txtbac);
	EditText bac;
        bac.setText(Float.toString(result));
dans mon InfoActivity même si l'Edittext est dans ResultActivity ?

ou sinon comment puis-je faire avec les intents pour que l'activity reste en background ?

Merci d'avance !