android计算器代码说明

Explanation of android calculator code

我正在用 android 创建一个简单的计算器。我搜索了 google 并找到了这段非常适合我的代码片段。但是我无法理解在 onCreate() 方法上实现的这段代码。有人可以向我解释这部分代码吗?

protected void onCreate(Bundle savedInstanceState) { 
          super.onCreate(savedInstanceState); 
          setContentView(R.layout.activity_main); 

          Toast.makeText(this, "Welcome :)", Toast.LENGTH_SHORT).show(); 
          int[]Btn_Id={ R.id.Btn0, R.id.Btn1, R.id.Btn2, R.id.Btn3,R.id.Btn4, R.id.Btn5, R.id.Btn6, R.id.Btn7, R.id.Btn8, R.id.Btn9, R.id.BtnClear, R.id.BtnDecimal, R.id.BtnDivide, R.id.BtnMultiply, R.id.BtnSubtract, R.id.BtnAdd, R.id.BtnEqual }; 

           for(int i: Btn_Id) { 
               ((Button)findViewById(i)).setOnClickListener(this); 
            } 
       }

int[]Btn_Id

它是一个按钮数组,其中包含布局资源文件中定义的按钮id

The below code is used to set ClickListener to all Button in your Btn_Id array

for(int i: Btn_Id) {
     ((Button)findViewById(i)).setOnClickListener(this);
}

方法onCreate在activity启动时调用,它是activity的入口点。

而activity为空window,setContentView用来填充id为R.layout.activity_main的资源

super.onCreate(savedInstanceState);,除了父 class 的 onCreate() 中的现有代码之外,您告诉 Dalvik VM 运行 您的代码。如果您省略此行,则只有您的代码是 运行。现有代码被完全忽略。

R.id.Btn0....表示在资源文件中定义,用于显示0等按钮。 int[]Btn_Id 变量保存所用按钮的资源 ID。

以下行为所有按钮分配按钮点击监听器:

for(int i: Btn_Id) {
    ((Button)findViewById(i)).setOnClickListener(this);
}

听说是你问题的解决方案希望你理解代码直到

Toast.makeText(this, "Welcome :)", Toast.LENGTH_SHORT).show(); 

这将在 activity 启动时创建 toast 消息 'welcome'。

int[]Btn_Id={ R.id.Btn0, R.id.Btn1, R.id.Btn2, R.id.Btn3,R.id.Btn4, R.id.Btn5, R.id.Btn6, R.id.Btn7, R.id.Btn8, R.id.Btn9, R.id.BtnClear, R.id.BtnDecimal, R.id.BtnDivide, R.id.BtnMultiply, R.id.BtnSubtract, R.id.BtnAdd, R.id.BtnEqual };

Btn_Id上方是一个整数数组,用于存储从 btn0 到 btnEqual 的所有按钮的 ID

for(int i: Btn_Id) { 
           ((Button)findViewById(i)).setOnClickListener(this); 
        } 

每个循环调用此函数。它像数组 Btn_Id 中的每个 int ID 一样工作并分配给 int i。对于我设置的每个 Button.setOnClickListner(this)\ this is a context.

如果您尝试找到 android 计算器的源代码,那么您可以免费获得。

下载源代码:https://www.youtube.com/playlist?list=PLdMmtAIsH0KYiKrdpbzat6t96Nb1_k3_1