2011-08-31 3 views
0

J'ai une requête dans les boutons de liste dynamique. J'ai 2 boutons dans ma liste dynamique. Je peux voir l'événement onclick et le toast apparaît. Mais quand j'essaie de transmettre une intention à la prochaine activité, cela ne fonctionne pas. Veuillez me dire où je me trompe.boutons de liste dynamique problème intention dans android

Mon code:

ViewHolder holder; 

    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.adaptor_content, null); 
     // Creates a ViewHolder and store references to the two children 
     // views 
     // we want to bind data to. 
      holder = new ViewHolder(); 
      holder.textLine = (TextView) convertView.findViewById(R.id.textLine); 
     // holder.iconLine = (ImageView) convertView.findViewById(R.id.iconLine); 
      holder.buttonLine = (Button) convertView.findViewById(R.id.buttonLine); 
      holder.DbuttonLine = (Button) convertView.findViewById(R.id.DbuttonLine); 
      holder.textLine2 =(TextView) convertView.findViewById(R.id.textLine2); 
      holder.mobile =(TextView) convertView.findViewById(R.id.mobile); 
      holder.newmes =(TextView) convertView.findViewById(R.id.newmessage); 
     convertView.setOnClickListener(new OnClickListener() { 
     private int pos = position; 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(context, "Click-" + String.valueOf(pos), Toast.LENGTH_SHORT).show();  
       } 
     }); 
     holder.buttonLine.setOnClickListener(new OnClickListener(){ 
     private int pos = position; 
     @Override 
     public void onClick(View v) { 
      //Toast.makeText(context, "Delete-" + String.valueOf(pos), Toast.LENGTH_SHORT).show(); 
      Intent myIntent = new Intent(v.getContext(), messsagelist.class); 
      //startActivity(myIntent); 

      this.startActivityForResult(myIntent, 0); 


      } 
     private void startActivityForResult(Intent myIntent, int i) { 
      // TODO Auto-generated method stub 

     } 
     }); 
     holder.DbuttonLine.setOnClickListener(new OnClickListener() { 
     private int pos = position; 
      @Override 
      public void onClick(View v) { 
      Toast.makeText(context, "Details-" + String.valueOf(pos), Toast.LENGTH_SHORT).show(); 
     } 
     }); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
} 

Répondre

0

Essayez de changer votre code getContext() utiliser votre contexte d'activité.

Remplacer:

 Intent myIntent = new Intent(v.getContext(), messsagelist.class); 
     //startActivity(myIntent); 

     this.startActivityForResult(myIntent, 0); 

Avec:

 Intent myIntent = new Intent(yourActivityName.this, messsagelist.class); 
     //startActivity(myIntent); 

     this.startActivityForResult(myIntent, 0); 

Edit: Correction d'une faute dans le code.

+0

ou 'getApplicationContext()'. – Rob

+0

Intention myIntent = nouvelle intention (yourActivityName.this, messsagelist.class); // startActivity (myIntent); Cela me donne l'erreur: marqueurs multiples à cette ligne \t - Erreur de syntaxe sur jeton « », supprimer ce jeton \t - L'intention du constructeur (classe ) est \t non définie et ne peut pas faire une référence statique à la non -static method startActivity (Intent) à partir du type Activité this.startActivityForResult (myIntent, 0); .. Pls me suggèrent que je travaille sur le même sujet depuis 3 jours .. Ma requête est que j'ai besoin de l'intention de l'activité suivante quand je clique sur les boutons dynamiques dans listview. –

+0

'yourActivityName.this' devrait être le nom de votre activité. Je n'ai pas littéralement signifié 'yourActivityName'. Si vous avez encore du mal, postez votre code d'activité entier et je vais jeter un coup d'œil, assurez-vous que vous avez eu une réponse à ce commentaire afin que je puisse revenir en arrière. – Ricky