2015-07-20 75 views
0

下面是我用来返回一个数字的代码,当按钮被点击时它应该是1。但是,当我尝试从另一个班级获得该号码时,它始终保持为0.我该如何让其他课程知道按钮被点击(Android Studio)

正如您可能认识到的,我试图更改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(); 

对不起,小白的问题..

回答

1

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

+0

还有一件事。你的问题与静态变量和实例变量有关。由于number是一个实例变量,因此每个对象都有一个副本。在学习Android之前,你应该先学习一些java的基础知识。 –

+0

是的,你可能是对的:D – Taurus22

0

你真正想要的是从另一个类中获取数字。不要将作业与点击按钮混合在一起。你应该设置模型的概念来存储数据和分离UI和数据,UI只是改变/获取数据。

我建议你要么通过以下两种方式

  1. 商店在一些全球模式的号码,然后你可以从另一个类的数量。
  2. 用户的Android广播的数据

使用在活动静态变量是不是一个好主意传递,它可能会导致memroy泄漏,但它可以解决您的问题。

+0

谢谢你的回答,我会学习的! – Taurus22

相关问题