2011-04-18 4 views

Répondre

0

Vous pouvez stocker View_A en tant que variable d'instance publique dans votre activité principale. passez ensuite le contexte de l'activité principale à View_B. Vous pouvez ensuite accéder à l'instance de View_A via le contexte de l'activité principale dans View_B.

est ici essentiellement ce que je veux dire

Ceci est votre principale activité:

Context context; 
public View_A viewA; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = this; 

    viewA = new View_A(); 
    View_B viewB = new View_B(context); 
} 

il serait probablement préférable à l'aide d'une méthode de lecture pour obtenir le viewA du contexte.

Voici View_B exemple de classe:

 class View_B { 
Context activityContext; 

    // constructor 
    View_B (Context _c) 
    { 
     activityContext = _c; 
     viewA = activityContext.viewA; 
     }  
    } 

qui est essentiellement ce que je veux dire, mais comme je l'ai dit dans mon commentaire, solution Teds semble plus élégante.

Je pense qu'il voulait dire quelque chose comme ceci:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = this; 

    View_A viewA = new View_A(); 
    View_B viewB = new View_B(); 
    // create a setter method in viewB class to set viewA instance into it after viewA & viewB are created. or i guess you could pass viewA to viewB in the constructor of viewB 
    viewb.setViewA(viewA); 
} 

J'espère que quelque chose qui peut vous aider

+0

N'importe quel exemple de code? Merci. – user403015

+0

voir mes mises à jour. J'ai inclus un échantillon de ce que je voulais dire, mais comme je l'ai dit, je pense que la solution Teds est plus élégant – wired00

0

Fondamentalement, vous avez besoin d'une référence à View_A dans View_B. Une façon de le faire est de définir une variable View_A dans View_B accessible à la classe d'activité. Dans onCreate, définissez simplement la variable sur l'instance de View_A une fois que View_A et View_B ont été créés.

+0

ahh c'est un moyen plus efficace que le mien car il ne passe pas le contexte à View_B – wired00

1

Il est siple.You JST besoin de créer la référence de classe besoin en vous courant class et appelez la méthode avec referenceedObject.methodName();

Questions connexes