(一)商品和加購金額的計算頁面
1.可以輸入尺和筆的數量,還有勾選紙/圓規/筆記本,計算總共金額(尺:29元,筆31元,紙加購3份60元,圓規3支60元,筆記本3本60元),先做版面設計

2.設定id和定義變數
public class MainActivity extends AppCompatActivity {
EditText x,y;
CheckBox s1,s2,s3;
Button cal;
TextView ans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
x=(EditText)findViewById(R.id.x);
y=(EditText)findViewById(R.id.y);
s1=(CheckBox)findViewById(R.id.s1);
s2=(CheckBox)findViewById(R.id.s2);
s3=(CheckBox)findViewById(R.id.s3);
cal=(Button)findViewById(R.id.cal);
ans=(TextView)findViewById(R.id.ans);
}
public void cal(View v){
}
}
3.加入功能
public void cal(View v){
try{
int X=Integer.parseInt(x.getText().toString());
int Y=Integer.parseInt(y.getText().toString());
boolean S1=s1.isChecked();
boolean S2=s2.isChecked();
boolean S3=s3.isChecked();
int sum=29*X+31*Y;
if (S1==true){
sum=sum+30;
}
if (S2==true){
sum=sum+60;
}
if (S3==true){
sum=sum+60;
}
ans.setText("總金額合計="+sum+"元");
}catch (Exception e){
ans.setText("不可輸入空白");
}
}
**說明:
1.isChecked():boolean確定checkbox是某有被勾選,有勾選為true,沒勾選為false
2.三個為獨立的if互不影響,因為可以複選
3.輸入空白送出會出錯,因為有Exception,所以要用try...catch,雖然不知道Exeception內容,可以直接用最上層的Exception抓
(二)
1.做一個按鈕可以從主頁跳到下一頁(P2),並且切換回來
MainActivity.java
public class MainActivity extends AppCompatActivity {
EditText x,y;
CheckBox s1,s2,s3;
Button cal,btnP2;
TextView ans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
btnP2=(Button)findViewById(R.id.btnP2);
}
public void btnP2(View v){
Intent in=new Intent();
in.setClass(MainActivity.this,P2.class);
startActivity(in);
}
...
}
P2.java
public class P2 extends AppCompatActivity {
Button home;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_p2);
home=(Button)findViewById(R.id.home);
}
public void home(View v){
Intent in=new Intent();
in.setClass(P2.this,MainActivity.class);
startActivity(in);
}
}
2.設計版面,定ID,定義變數(在做radio button時,如果要單選,要先放radio group讓他們變成一個群組)

public class P2 extends AppCompatActivity {
Button home,ok;
RadioButton b1,b2,b3;
CheckBox c1,c2,c3;
TextView ans2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_p2);
home=(Button)findViewById(R.id.home);
ok=(Button)findViewById(R.id.ok);
b1=(RadioButton)findViewById(R.id.b1);
b2=(RadioButton)findViewById(R.id.b2);
b3=(RadioButton)findViewById(R.id.b3);
c1=(CheckBox)findViewById(R.id.c1);
c2=(CheckBox)findViewById(R.id.c2);
c3=(CheckBox)findViewById(R.id.c3);
ans2=(TextView)findViewById(R.id.ans2);
}
public void home(View v){
Intent in=new Intent();
in.setClass(P2.this,MainActivity.class);
startActivity(in);
}
}
3.撰寫程式碼
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_p2);
home=(Button)findViewById(R.id.home);
ok=(Button)findViewById(R.id.ok);
b1=(RadioButton)findViewById(R.id.b1);
b2=(RadioButton)findViewById(R.id.b2);
b3=(RadioButton)findViewById(R.id.b3);
c1=(CheckBox)findViewById(R.id.c1);
c2=(CheckBox)findViewById(R.id.c2);
c3=(CheckBox)findViewById(R.id.c3);
ans2=(TextView)findViewById(R.id.ans2);
}
public void home(View v){
Intent in=new Intent();
in.setClass(P2.this,MainActivity.class);
startActivity(in);
}
public void ok(View v){
String job="";
String interest="";
if (b1.isChecked()){
job="資訊";
}else if(b2.isChecked()){
job="教育";
}else if(b3.isChecked()){
job="金融";
}
//if(!(c1.isChecked())&&!(c2.isChecked())&&!(c3.isChecked()))interest=interest+"請選擇任一興趣!";
if(c1.isChecked())interest=interest+" 電影";
if(c2.isChecked())interest=interest+" 運動";
if(c3.isChecked())interest=interest+" 音樂";
ans2.setText("您的職業是:"+job+"\n您的興趣是:"+interest);
}
}
(三)練習把網站做成APP(參考:http://163.20.103.193/~chen06/b/standard.htm)
*程式參考(github):checkbox & radiobutton
*程式參考(github):網站改寫為App
文章標籤
全站熱搜