2013-05-05 4 views
0

첫 번째 onClick 이벤트 내에서 변수 Tweet을 만들었습니다. 다른 onClick 이벤트에 대해 해당 변수를 가져와야합니다. 변수 Tweet 또는 변수 RandomIndex. 나는 지금 2 시간 동안 인터넷을 검색하고 있는데 어떻게 그 변수를 전달할 수 있는지 찾는 데 문제가있다. 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

당신은 클래스의 상단에 글로벌 변수와 같은 트윗을 사용할 수 있습니다. 당신이 복잡한 활동을하는 경우 이것은 좋은 해결책이 아닙니다.

다른 내부 클래스에 클릭 리스너를 추가 할 수도 있으며이 클래스의 생성자를 전역 변수없이 메소드에 전달할 수 있습니다.

관련 문제