2017-09-03 1 views
0

Je suis nouveau sur Android. J'ai une classe d'activité de base (MainActivity.java) qui étend l'activité. Je peux donc initialiser l'intention ici. MainActivity.javaComment obtenir des valeurs d'intention non Classe d'activité dans Android

Intent myIntent = new Intent(MainActivity.this, ConnectionClass.class); 
myIntent.putExtra("ServerName", ServerName); 
startActivityForResult(myIntent, 1); 

Dans connectionClass.java J'ai un ConnectionClass de classe qui n'a pas hérité. Mais je veux accéder aux valeurs de MainActivity.java. Donc, cette classe N'a pas hérité de l'activité & onCreate Method. Mais je dois accéder aux valeurs de MainActivity.java à ConnectioClass.java

ConnectionClass.Java

public class ConnectionClass { 
    Bundle bundle = getIntent().getExtras(); 
     String ServerName = bundle.getString("ServerName"); 
} 

Comment puis-je faire cela?

+1

Vous ne pouvez obtenir l'intention que dans une activité. Vous devez le passer à une autre classe en tant que paramètre. Mais je pense que vous êtes confus. Si ConnectionClass n'est pas une activité, vous ne pouvez pas la passer en paramètre pour créer une nouvelle intention. Seules les activités peuvent être démarrées via startActivityForResult. –

Répondre

0

Je ne sais pas si le "NomServeur" est une valeur fixe, ou varie à chaque fois, ou s'il a une sorte de groupe de valeurs. Si c'est le premier ou le troisième cas, je vous suggère d'utiliser SharedPreferences. C'est un stockage de données à valeur-clé relativement petit. Vous pouvez y enregistrer des données et celles-ci seront permanentes dans votre application une fois stockées sauf si elles sont supprimées. Vous pouvez donc enregistrer des données dans MainActivity et récupérer la valeur dans une classe où vous le souhaitez.

Vous pouvez trouver tutoriel ici: https://developer.android.com/training/basics/data-storage/shared-preferences.html

0

vous pouvez passer le servername à la classe lorsque vous instancier un nouvel objet à partir ConnectionClass dans votre activité comme ci-dessous

public class ConnectionClass { 
String serverName; 
public ConnectionClass(String serverName){ 
this.serverName=serverName; 
} 
} 

alors dans votre activité que vous avez quelque chose comme:

Bundle bundle = getIntent().getExtras(); 
String ServerName = bundle.getString("ServerName"); 
ConnectionClass connection=new ConnectionClass(ServerName);