0

最初の onClick イベント内で変数 Tweet を作成しました。別の onClick イベント用にその変数を取得する必要があります。変数 Tweet または変数 RandomIndex のいずれか。私は現在2時間インターネットを検索していますが、その変数を渡す方法を見つけるのに問題があります。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));
            }
        });
4

2 に答える 2

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(); 
于 2013-05-05T22:24:41.573 に答える
0

クラスのトップでグローバル変数として Tweet like を使用できます。複雑なアクティビティがある場合、これは良い解決策ではありません。

別の内部クラスにクリック リスナーを配置することもできます。また、このクラスのコンストラクターをスローして、グローバル変数なしでこの変数をメソッドに渡すこともできます。

于 2013-05-05T22:27:21.693 に答える