2013-05-05 1 views
0

J'ai créé une variable Tweet dans le premier événement onClick. Je dois obtenir cette variable pour un autre événement onClick. Soit variable Tweet ou variable RandomIndex. Je suis à la recherche d'Internet depuis deux heures maintenant, ayant des problèmes pour trouver comment je peux passer cette variable. Je comprends que lorsque l'événement OnClick se termine, il tue la variable.Passer une variable de l'événement OnClick à un autre événement OnClick

buttonWhatToDoNow.setOnClickListener(new View.OnClickListener() { 

      public int GetRandomNumber(int max) { 
       Random rand = new Random(); 
       int num = rand.nextInt(max); 
       return num; 
      } 

      int RandomIndex; 

      public void onClick(View v) { 

       int countMax = databaseHelper.getCountNow(); 
       RandomIndex = GetRandomNumber(countMax) + 1; 

       String Boolean = databaseHelper.getBoolean(RandomIndex); 

       if (Boolean == "1") { 
        RandomIndex = GetRandomNumber(countMax) + 1; 
        Boolean = databaseHelper.getBoolean(RandomIndex); 
       } 
       while (Boolean == "1") { 
        RandomIndex = GetRandomNumber(countMax) + 1; 
        Boolean = databaseHelper.getBoolean(RandomIndex); 
       } 

       String Title = databaseHelper.getTitleNow(RandomIndex); 
       String Text1 = databaseHelper.getText1Now(RandomIndex); 
       String Text2 = databaseHelper.getText2Now(RandomIndex); 
       String Text3 = databaseHelper.getText3Now(RandomIndex); 
       String Tweet = databaseHelper.getTweetNow(RandomIndex); 

       String Image1 = databaseHelper.getImage1Now(RandomIndex); 
       String Image2 = databaseHelper.getImage2Now(RandomIndex); 
       String Image3 = databaseHelper.getImage3Now(RandomIndex); 

       textViewDoThisTitle.setText(Title); 
       textViewDoThisText1.setText(Text1); 
       imageViewDoThis1.setImageResource(getResources().getIdentifier(
         Image1, "drawable", getPackageName())); 
       textViewDoThisText2.setText(Text2); 
       imageViewDoThis2.setImageResource(getResources().getIdentifier(
         Image2, "drawable", getPackageName())); 
       textViewDoThisText3.setText(Text3); 
       imageViewDoThis3.setImageResource(getResources().getIdentifier(
         Image3, "drawable", getPackageName())); 

      } 

      public final int asddd = RandomIndex; 
     }); 

     buttonTweetThis.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent sendIntent = new Intent(Intent.ACTION_SEND); 
       sendIntent.putExtra(Intent.EXTRA_TEXT, Tweet); 
       sendIntent.setType("application/twitter"); 
       startActivity(Intent.createChooser(sendIntent, null)); 
      } 
     }); 

Répondre

0

Je ne sais pas pourquoi vous ne venez d'utiliser une variable de classe mais de toute façon vous pouvez essayer ceci:

setTag(Object tag) 
    //Sets the tag associated with a view. 


getTag(Object tag) 
//gets the tag associated with a view. 


thus place anything you want to save for example view.setTag(tweet); 

then in the other onclick yo can get the raw object and probably have to cast it to what you want. using view.getTag(); 
0

Vous pouvez utiliser Tweet comme variable globale comme dans la classe supérieure. Ce n'est pas une bonne solution si vous avez une activité complexe.

Vous pouvez également mettre des écouteurs click dans une classe interne différente, et vous pouvez lancer le constructeur de cette classe passer cette variable dans la méthode sans variables globales.

Questions connexes