2013-05-05 2 views
0

Я сделал переменную Tweet внутри первого события onClick. Мне нужно получить эту переменную для другого события onClick. Любая переменная Tweet или переменная RandomIndex. Я ищу интернет в течение двух часов, имея проблемы с тем, как я могу передать эту переменную. Я понимаю, что когда событие OnClick завершается, оно убивает переменную.Передача переменной из события OnClick в другое событие 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)); 
      } 
     }); 

ответ

0

Я не знаю, почему вы не просто использовать переменную класса, но в любом случае вы можете попробовать это:

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

Вы можете использовать твит как в качестве глобальной переменной в верхней части класса. Это нехорошее решение, если у вас сложная деятельность.

Вы также можете использовать прослушиватели щелчков в другом внутреннем классе, и вы можете бросить конструктор этого класса, передав эту переменную в методе без глобальных vars.

Смежные вопросы