如何让其他班级知道点击了一个按钮(Android Studio)

时间:2015-07-20 03:35:41

标签: java android

以下是我用来返回单击按钮时应为1的数字的代码。但是,当我试图从另一个班级获得该数字时,它总是保持为0.

正如您可能认识到的那样,我尝试更改onClickListener中的数字并在下面返回它。

我还尝试使用onPause命令,以便它返回onPause数字,但它仍然无法正常工作。

public class MainActivity extends Activity {
    public int number;
    Button btnAngled;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);



        btnAngled = (Button) findViewById(R.id.btnAngled);

        final Intent intent = new Intent(this, angledForeheadActivity.class);



        btnAngled.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                number = 1;
                startActivity(intent);

            }

        });


    }


    @Override
    protected void onPause() {
        super.onPause();

    }

    public int getNumber() {
        return number;
    }

}

我尝试使用以下代码获取另一个类中的代码:

 MainActivity a = new MainActivity();

int number = a.getNumber();

对于noob问题抱歉..

2 个答案:

答案 0 :(得分:1)

将变量声明为静态变量。然后,您只需获得所需的结果,因为该变量只有一个副本。如果要使用intent传递值,可以调用意图的putExtra()将信息传递给另一个活动。 Intent reference page

答案 1 :(得分:0)

您真正想要的是从另一个班级获取该号码。不要将按钮点击一起混合工作。您应该设置模型的概念来存储数据并分离UI和数据,UI只需更改/获取数据。

我建议你使用这两种方法中的任何一种

  1. 将号码存储在某个全局模型中,然后您可以从另一个类中获取该号码。
  2. 用户Android广播传输数据
  3. 在Activity中使用静态变量不是一个好主意,它可能会导致memroy泄漏,虽然它可以解决你的问题。