第11天~

改标题:

https://ithelp.ithome.com.tw/upload/images/20220201/201190359DVd0KtLCs.png

先起个头~继续Intent~官网资料
https://developer.android.com/reference/android/content/Intent
第9天卡住的第2页的跳转

/images/emoticon/emoticon09.gif

main ->intent->page2


发现是

 t3.setText("数量"+num);

要从int变String不然会闪退

修改的page2.java

package com.huang.myapplication8;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class Page2 extends AppCompatActivity {
    TextView t1,t2,t3,t4,t5,t6,t7;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_page2);
        t1 =findViewById(R.id.t1);
        t2 =findViewById(R.id.t2);
        t3 =findViewById(R.id.t3);
        t4 =findViewById(R.id.t4);
        t5 =findViewById(R.id.t5);
        t6 =findViewById(R.id.t6);
        t7 =findViewById(R.id.t7);

        //接收包裹
        Intent it2 =getIntent();
        Bundle bundle =it2.getExtras();

        String name = bundle.getString("name");
        String phone = bundle.getString("phone");
        int num = bundle.getInt("num");
        String meal = bundle.getString("meal");
        String drink = bundle.getString("drink");
        String memo = bundle.getString("memo");

        t1.setText("订购人"+name);
        t2.setText("电话"+phone);
        t3.setText("数量"+num);
        t4.setText("主餐"+meal);
        t5.setText("饮料"+drink);
        t6.setText("备注"+memo);


        //小计
        int sum =0;
        if(meal.equals("鸡肉")){
            sum =num * 80;
        }else if(meal.equals("猪肉")){
            sum =num * 85;
        }else if(meal.equals("X牛羊")){
            sum =num * 90;
        }else if(meal.equals("海鲜")){
            sum =num*70;
        }

        t7.setText("小计:"+sum+"元");

        //Toast.makeText(Page2.this,"小计:"+sum+"元",Toast.LENGTH_LONG).show();
    }

    public void onClick(View view) {
    }
}

我这里试的跳转也是要用手机才可以跳过去~
https://ithelp.ithome.com.tw/upload/images/20220201/20119035a2TfTyXbPM.jpg

因为小计第2页有做了~所以第一页的小计拿掉
//TextView uPrice;

//uPrice =findViewById(R.id.uPrice);

https://ithelp.ithome.com.tw/upload/images/20220201/20119035ZnvOqxDJUX.jpg

https://ithelp.ithome.com.tw/upload/images/20220201/20119035WRBaTQmOy5.jpg

再来写-取消订单button-用page2再送一个intent回来
https://ithelp.ithome.com.tw/upload/images/20220201/20119035yQJhDxrR8X.png

再到xml档onClick2

https://ithelp.ithome.com.tw/upload/images/20220201/20119035uRSvLmMERY.png

https://ithelp.ithome.com.tw/upload/images/20220201/20119035JdzhxUEBub.png

在MainActivity.java档第一页的"取消订单"button

public void onClick2(View view) {
        uName.setText("");
        uPhone.setText("");
        uNum.setText("");


    }

https://ithelp.ithome.com.tw/upload/images/20220201/20119035jBBOfdGEJ9.png

https://ithelp.ithome.com.tw/upload/images/20220201/2011903550GZzlfqA2.png

目前全部完成的程序码:

package com.huang.myapplication8;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    //宣告变数
    EditText uName,uPhone,uNum;
    //TextView uPrice;
    RadioGroup uMeal,uDrink;
    RadioButton m1,m2,m3,m4,d1,d2,d3;
    CheckBox memo1,memo2,memo3;

    String mealString,drinkString,all ="";

    //初始化

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

        uName =findViewById(R.id.uName);
        uPhone =findViewById(R.id.uPhone);
        uNum =findViewById(R.id.uNum);
        //uPrice =findViewById(R.id.uPrice);

        //uMeal
        uMeal=findViewById(R.id.uMeal);
        uMeal.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb =findViewById(checkedId);
                mealString = rb.getText().toString();
                Toast.makeText(MainActivity.this,mealString,Toast.LENGTH_SHORT).show();


            }
        });

        //uDrink
        uDrink=findViewById(R.id.uDrink);
        uDrink.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb =findViewById(checkedId);
                drinkString = rb.getText().toString();
                Toast.makeText(MainActivity.this,mealString,Toast.LENGTH_SHORT).show();

            }
        });

        //checkBox
        memo1 =findViewById(R.id.memo1);
        memo2 =findViewById(R.id.memo2);
        memo3 =findViewById(R.id.memo3);



    }

    //收集资料并送到下一页

    public void onClick(View view) {
        //文字栏位的收集
        String name = uName.getText().toString();
        String phone = uPhone.getText().toString();
        int num = Integer.parseInt(uNum.getText().toString());

        //checkBox
        int[] cbs ={R.id.memo1,R.id.memo2,R.id.memo3};
        for(int i:cbs){
            CheckBox cc =findViewById(i);
            if(cc.isChecked()){
                all += cc.getText().toString()+"\t";
            }
        }

        //建立Intent物件
        Intent it = new Intent();//送货员
        it.setClass(MainActivity.this,Page2.class);//送到哪里去

        //打包资料
        Bundle bundle = new Bundle();
        bundle.putString("name",name);
        bundle.putString("phone",phone);
        bundle.putInt("num",num);
        bundle.putString("meal",mealString);
        bundle.putString("drink",drinkString);
        bundle.putString("memo",all);
        //Intent夹带资料包裹
        it.putExtras(bundle);

        //送到第2页
        startActivity(it);//出发了
    }

    public void onClick2(View view) {
        uName.setText("");
        uPhone.setText("");
        uNum.setText("");


    }
}

姓名 必填-不可以空的语法-

String name = uName.getText().toString();

用name 不是uName

https://ithelp.ithome.com.tw/upload/images/20220201/20119035x9HTi5Gx82.png

https://ithelp.ithome.com.tw/upload/images/20220201/20119035glNidq6Fl6.png

TextUtils是检查文字的工具-

https://codertw.com/android-%E9%96%8B%E7%99%BC/335221/

//文字栏位的收集
        String name = uName.getText().toString();
        if(!TextUtils.isEmpty(name)){
            Toast.makeText(MainActivity.this,"不可为空",Toast.LENGTH_SHORT).show();
        }

目前全部的程序码:

package com.huang.myapplication8;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    //宣告变数
    EditText uName,uPhone,uNum;
    //TextView uPrice;
    RadioGroup uMeal,uDrink;
    RadioButton m1,m2,m3,m4,d1,d2,d3;
    CheckBox memo1,memo2,memo3;

    String mealString,drinkString,all ="";

    //初始化

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

        uName =findViewById(R.id.uName);
        uPhone =findViewById(R.id.uPhone);
        uNum =findViewById(R.id.uNum);
        //uPrice =findViewById(R.id.uPrice);

        //uMeal
        uMeal=findViewById(R.id.uMeal);
        uMeal.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb =findViewById(checkedId);
                mealString = rb.getText().toString();
                Toast.makeText(MainActivity.this,mealString,Toast.LENGTH_SHORT).show();


            }
        });

        //uDrink
        uDrink=findViewById(R.id.uDrink);
        uDrink.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb =findViewById(checkedId);
                drinkString = rb.getText().toString();
                Toast.makeText(MainActivity.this,mealString,Toast.LENGTH_SHORT).show();

            }
        });

        //checkBox
        memo1 =findViewById(R.id.memo1);
        memo2 =findViewById(R.id.memo2);
        memo3 =findViewById(R.id.memo3);



    }

    //收集资料并送到下一页

    public void onClick(View view) {
        //文字栏位的收集
        String name = uName.getText().toString();
        if(!TextUtils.isEmpty(name)){
            Toast.makeText(MainActivity.this,"不可为空",Toast.LENGTH_SHORT).show();
        }


        String phone = uPhone.getText().toString();
        int num = Integer.parseInt(uNum.getText().toString());

        //checkBox
        int[] cbs ={R.id.memo1,R.id.memo2,R.id.memo3};
        for(int i:cbs){
            CheckBox cc =findViewById(i);
            if(cc.isChecked()){
                all += cc.getText().toString()+"\t";
            }
        }

        //建立Intent物件
        Intent it = new Intent();//送货员
        it.setClass(MainActivity.this,Page2.class);//送到哪里去

        //打包资料
        Bundle bundle = new Bundle();
        bundle.putString("name",name);
        bundle.putString("phone",phone);
        bundle.putInt("num",num);
        bundle.putString("meal",mealString);
        bundle.putString("drink",drinkString);
        bundle.putString("memo",all);
        //Intent夹带资料包裹
        it.putExtras(bundle);

        //送到第2页
        startActivity(it);//出发了
    }

    public void onClick2(View view) {
        uName.setText("");
        uPhone.setText("");
        uNum.setText("");


    }
}

<<:  Angular 深入浅出三十天:表单与测试 Day11 - Reactive Forms 实作 - 动态表单初体验

>>:  予焦啦!问题分析

Day07 - this&Object Prototypes Ch3 Objects - Contents - Immutability

今天看 Immutability(不可变),作者提供适用於不同情境的四种方法,将物件设定为不可更变的...

Material UI in React [ Day 30 ] 总结

今天是参赛的最後一天,至此已经讲解完侧边栏位的内容了,之後会再整理每一章节的范例在 code sen...

深度学习训练集问题

小弟是深度学习方面新手 最近想试试图像辨识但遇到了难题 我想辨认的三种东西分别是lad, lcx, ...

JavaScript Array | 与其他程序语言很不同的阵列(上)

JavaScript Array (阵列) 阵列 (array) 是一个有序的序列,阵列中可以储存不...

GMail 挡信,DNS Server 需要新增 spf dmarc dkim 该怎麽设定

GMail 挡信,DNS Server 需要新增 spf dmarc dkim 该怎麽设定 原文出处...