2010-10-27 4 views
1

je le code suivant pour une fileuse:Appel de la méthode clickHandler et passer une valeur

public class MyOnItemSelectedListener implements OnItemSelectedListener { 

public void onItemSelected(AdapterView<?> parent, 
    View view, int pos, long id) { 

    String TABLE_NAME = parent.getItemAtPosition(pos).toString(); 

      int spinnerYearsPos = parent.getSelectedItemPosition(); 

    Cursor cursor = getStats(TABLE_NAME);   

    showStats(cursor); 
} 

public void onNothingSelected(AdapterView<?> parent) { 
    // Do nothing. 
} 

}

Ce que je voudrais faire est d'être en mesure de passer la variable spinnerYearsPos dans le code ci-dessus dans cette méthode:

public void clickHandler(View v){ 

    if (v.getId() == R.id.TableTab) { 

    Intent myIntent = new Intent(getApplicationContext(), Table.class); 


     myIntent.putExtra("spinnerYearsPos", spinnerYearsPos); 
     startActivity(new Intent(getApplicationContext(), Table.class)); 
     } 

     if (v.getId() == R.id.OtherStatsTab) { 

     startActivity(new Intent(getApplicationContext(), OtherStats.class)); 

     } 

     } 

Actuellement, Eclipse souligne la référence spinnerYearsPos en rouge. Comment puis-je appeler la méthode clickHandler et y passer la variable spinnerYearsPos?

Répondre

0

/// Prenez spinnerYearsPos comme var global

int spinnerYearsPos; 
    public class MyOnItemSelectedListener implements OnItemSelectedListener { 


    public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 

     String TABLE_NAME = parent.getItemAtPosition(pos).toString(); 

       spinnerYearsPos = parent.getSelectedItemPosition(); 

     Cursor cursor = getStats(TABLE_NAME);   

     showStats(cursor); 
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
     // Do nothing. 
    } 

public void clickHandler(View v){ 

     if (v.getId() == R.id.TableTab) { 

     open_new_act1(); 
      } 

      if (v.getId() == R.id.OtherStatsTab) { 

      startActivity(new Intent(getApplicationContext(), OtherStats.class)); 

      } 

      } 

//// créer cette méthode ci-dessous l'extérieur gestionnaire

private void open_new_act1() 
{ 
Intent myIntent = new Intent(getApplicationContext(), Table.class); 


     myIntent.putExtra("spinnerYearsPos", spinnerYearsPos); 
     startActivity(new Intent(getApplicationContext(), Table.class)); 
} 
+0

Salut Maneesh. Merci beaucoup pour cela. Le seul bit que j'ai changé de votre code a été de remplacer le paramètre dans la méthode startActivity par 'myIntent' et cela a fonctionné parfaitement! – Sumino7

Questions connexes