2012-08-31 2 views
2

Ceci est mon Custom OnClickListener. Je passe la position de mon bouton Gridview du ButtonAdapter.class. Je veux ouvrir une nouvelle activité pour chaque bouton de la vue de la grille. Quels changements dois-je faire dans mon MyOnClickListener.class?Ouvrir une nouvelle activité pour chaque bouton du GridView

MyOnClickListener.class

import android.content.Intent; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class MyOnClickListener implements OnClickListener { 


private final int position; 

    public MyOnClickListener(int position) 
    { 
     this.position = position; 
    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent intent = new Intent(v.getContext(), WordsList.class); 
     v.getContext().startActivity(intent); 
    } 

} 

je suis arrivé la solution. J'ai essayé ça et ça marche!

public class MyOnClickListener implements OnClickListener { 


private final int position; 

public MyOnClickListener(int position) 
{ 
    this.position = position; 
} 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(position){ 
     case 0: 
     Intent a = new Intent(v.getContext(), WordsList.class); 
     v.getContext().startActivity(a); 
     break; 
    case 1: 
     Intent b = new Intent(v.getContext(), About.class); 
     v.getContext().startActivity(b); 
     break; 

    } 


} 

} 
+0

À quels problèmes faites-vous face maintenant? – Swayam

+0

problème est résolu. J'ai utilisé le commutateur (position) {case 0: ....} –

Répondre

3

Ou quelque chose comme:

private Class[] activities = { 
    Activity1.class, // position=0 
    Activity2.class, // position=1 
    //... 
    }; 

public void onClick(View v) { 
    Intent intent = new Intent(v.getContext(), activities[position]); 
    v.getContext().startActivity(intent); 
} 

Mais c'est très simple, et peut-être que je Maladroit?

+0

Cela fonctionne aussi. –

1
public void onClick(View v) { 
    // TODO Auto-generated method stub 
Intent intent; 
switch(v.getId()) 
{ 
    case R.id.btn1: 
     intent = new Intent(v.getContext(), WordsList1.class); 
     v.getContext().startActivity(intent); 
     break; 
    case R.id.btn2: 
     intent = new Intent(v.getContext(), WordsList2.class); 
     v.getContext().startActivity(intent); 
     break; 
    } 

} 
0

Je suis assez sûr que vous devriez utiliser un OnItemClickListener, comme il est spécialisé pour adaptateur à base UIs. Il vous passera à côté de la vue elle-même (comme dans OnClick), mais aussi de la position et de l'ID qui permettront d'identifier facilement l'appelant et d'agir correctement dessus.

Questions connexes