【问题标题】:Passing variable from OnClick event to other OnClick event将变量从 OnClick 事件传递给其他 OnClick 事件
【发布时间】:2013-05-06 06:35:22
【问题描述】:

我在第一个 onClick 事件中创建了一个变量 Tweet。 我需要为另一个 onClick 事件获取该变量。变量 Tweet 或变量 RandomIndex。我现在在网上搜索了两个小时,找不到如何传递该变量的问题。我知道当 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));
            }
        });

【问题讨论】:

    标签: android variables onclick


    【解决方案1】:

    我不知道你为什么不只使用类变量,但无论如何你可以试试这个:

     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(); 
    

    【讨论】:

      【解决方案2】:

      您可以使用 Tweet 作为类顶级的全局变量。如果您有复杂的活动,这不是一个好的解决方案。

      你也可以在不同的内部类中添加点击监听器,你可以抛出这个类的构造函数在没有全局变量的方法中传递这个变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2018-06-24
        相关资源
        最近更新 更多