1、簡易電腦
簡易電腦階段1:布局結果:階段2、應用程式的實作//除數計算的時候 需要注意: 3、定義類來封裝方法 4、運作結果為:
階段1:
布局設定://使用布局之間的嵌套
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#aaddbb"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="262dp"
android:layout_height="82dp"
android:orientation="horizontal" >
<EditText
android:id="@+id/op1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:layout_weight="1" />
<TextView
android:id="@+id/op"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"/>
<EditText
android:id="@+id/op2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:layout_weight="1"/>
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="284dp"
android:layout_height="64dp"
android:orientation="horizontal" >
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:layout_weight="1"/>
<Button
android:id="@+id/sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-"/>
<Button
android:id="@+id/multip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*"/>
<Button
android:id="@+id/devide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/"/>
</LinearLayout>
</LinearLayout>
布局結果:
簡易電腦階段1:布局結果:階段2、應用程式的實作//除數計算的時候 需要注意: 3、定義類來封裝方法 4、運作結果為:
階段2、應用程式的實作
package cn.bzu.layout.layout_01;
import cn.bzu.layout.model.Activity_01;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private EditText op1Txt;
private TextView opTxt;
private EditText op2Txt;
private TextView resultTxt;
private Button add;
private Button sub;
private Button multip;
private Button devide;
private Double result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Inity();
}
private void Inity() {
op1Txt = (EditText) this.findViewById(R.id.op1);
opTxt = (TextView) this.findViewById(R.id.op);
op2Txt = (EditText) this.findViewById(R.id.op2);
resultTxt = (TextView) this.findViewById(R.id.result);
add = (Button) this.findViewById(R.id.add);
add.setOnClickListener(new btnHandler());
sub = (Button) this.findViewById(R.id.sub);
sub.setOnClickListener(new btnHandler());
multip = (Button) this.findViewById(R.id.multip);
multip.setOnClickListener(new btnHandler());
devide = (Button) this.findViewById(R.id.devide);
devide.setOnClickListener(new btnHandler());
}
public class btnHandler implements OnClickListener {
@Override
public void onClick(View v) {
String op1str = op1Txt.getText().toString();
String op2str = op2Txt.getText().toString();
double num1 = Double.parseDouble(op1str);
double num2 = Double.parseDouble(op2str);
switch (v.getId()) {
case R.id.add:
opTxt.setText("+");
result = Activity_01.add(num1, num2);
break;
case R.id.sub:
opTxt.setText("-");
result = Activity_01.sub(num1, num2);
break;
case R.id.multip:
opTxt.setText("*");
result = Activity_01.multip(num1, num2);
break;
//除數計算的時候 需要注意:
case R.id.devide:
opTxt.setText("/");
if (num2 == 0)
resultTxt.setText("除數不能為零");
result = Activity_01.devide(num1, num2);
break;
}
if (!((num2 == 0) && ((opTxt.getText()).equals("/")))) {
resultTxt.setText(result + "");
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.about:
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle(R.string.about)
.setMessage("歡迎使用電腦\n您可以通過該電腦進行簡單的計算!")
.create()
.show();
break;
case R.id.exit:
this.finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
3、定義類來封裝方法
package cn.bzu.layout.model;
public class Activity_01 {
public static double add(double num1,double num2) {
return num1+num2;
}
public static double sub(double num1,double num2) {
return num1-num2;
}
public static double multip(double num1,double num2) {
return num1*num2;
}
public static double devide(double num1,double num2) throws ArithmeticException{
return num1/num2;
}
}
4、運作結果為:
簡易電腦階段1:布局結果:階段2、應用程式的實作//除數計算的時候 需要注意: 3、定義類來封裝方法 4、運作結果為:
簡易電腦階段1:布局結果:階段2、應用程式的實作//除數計算的時候 需要注意: 3、定義類來封裝方法 4、運作結果為: