安卓作业记录

使用了sqlite 和adapter 的简单例子

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <RelativeLayout android:id="@+id/RelativeLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <EditText android:id="@+id/name"
            android:text=""
            android:layout_width="280dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip" >
        </EditText>
        <TextView android:id="@+id/name_label"
            android:text="姓名:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toRightOf="@id/name"
            android:layout_alignBaseline="@+id/name">
        </TextView>

        <EditText android:id="@+id/age"
            android:text=""
            android:layout_width="280dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_below="@id/name"
            >
        </EditText>
        <TextView android:id="@+id/age_label"
            android:text="班级:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toRightOf="@id/age"
            android:layout_alignBaseline="@+id/age" >
        </TextView>

        <EditText android:id="@+id/height"
            android:text=""
            android:layout_width="280dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_below="@id/age"
            >
        </EditText>
        <TextView android:id="@+id/height_label"
            android:text="学号:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toRightOf="@id/height"
            android:layout_alignBaseline="@+id/height">
        </TextView>

    </RelativeLayout>

    <LinearLayout android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button android:id="@+id/add"
            android:text="添加数据"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding = "5dip"
            android:layout_weight="1">
        </Button>
        <Button android:id="@+id/query_all"
            android:text="全部显示"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding = "5dip"
            android:layout_weight="1">
        </Button>
        <Button android:id="@+id/clear"
            android:text="清除显示"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding = "5dip"
            android:layout_weight="1">
        </Button>
        <Button	android:id="@+id/delete_all"
            android:text="全部删除"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding = "5dip"
            android:layout_weight="1">
        </Button>
    </LinearLayout>

    <LinearLayout android:id="@+id/LinearLayout03"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView android:text="ID:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding = "3dip">
        </TextView>
        <EditText android:id="@+id/id_entry"
            android:layout_width="50dip"
            android:layout_height="wrap_content"
            android:padding = "3dip"
            android:layout_weight="1">
        </EditText>
        <Button android:id="@+id/delete"
            android:text="ID删除"
            android:layout_width="50dip"
            android:layout_height="wrap_content"
            android:padding = "3dip"
            android:layout_weight="1">
        </Button>
        <Button android:id="@+id/query"
            android:text="ID查询"
            android:layout_width="50dip"
            android:layout_height="wrap_content"
            android:padding = "3dip"
            android:layout_weight="1">
        </Button>
        <Button android:id="@+id/update"
            android:text="ID更新"
            android:layout_width="50dip"
            android:layout_height="wrap_content"
            android:padding = "3dip"
            android:layout_weight="1">
        </Button>
    </LinearLayout>

    <TextView android:id="@+id/label"
        android:text="查询结果:"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </TextView>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/lv1"
            />

    </LinearLayout>
<!--    <ScrollView  android:layout_width="fill_parent"-->
<!--        android:layout_height="fill_parent">-->
<!--        <LinearLayout android:layout_width="fill_parent"-->
<!--            android:layout_height="wrap_content"-->
<!--            android:orientation="vertical">-->
<!--            <TextView android:id="@+id/display"-->
<!--                android:text=""-->
<!--                android:layout_width="wrap_content"-->
<!--                android:layout_height="wrap_content">-->
<!--            </TextView>-->
<!--        </LinearLayout>-->
<!--    </ScrollView>-->

</LinearLayout>



package com.example.myworksql;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    private DBAdapter dbAdepter ;

    private EditText nameText;
    private EditText ageText;
    private EditText heightText;
    private EditText idEntry;

    private TextView labelView;
    //private TextView displayView;
    private ListView listv;

    public void clear(View view){
        ArrayAdapter adapter = (ArrayAdapter) listv.getAdapter();
        List<String> list = new ArrayList<String>();
        list.add("ID" + "         " + "姓名" + "         " + "班级" + "         " + "学号");
        int count = adapter.getCount();
        if (count > 0){
            listv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list));
        }

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

        nameText = (EditText)findViewById(R.id.name);
        ageText = (EditText)findViewById(R.id.age);
        heightText = (EditText)findViewById(R.id.height);
        idEntry = (EditText)findViewById(R.id.id_entry);

        labelView = (TextView)findViewById(R.id.label);

        listv = (ListView)findViewById(R.id.lv1);
        //displayView = (TextView)findViewById(R.id.display);



        Button addButton = (Button)findViewById(R.id.add);
        Button queryAllButton = (Button)findViewById(R.id.query_all);
        Button clearButton = (Button)findViewById(R.id.clear);
        Button deleteAllButton = (Button)findViewById(R.id.delete_all);

        Button queryButton = (Button)findViewById(R.id.query);
        Button deleteButton = (Button)findViewById(R.id.delete);
        Button updateButton = (Button)findViewById(R.id.update);


        addButton.setOnClickListener(addButtonListener);
        queryAllButton.setOnClickListener(queryAllButtonListener);
        clearButton.setOnClickListener(clearButtonListener);
        deleteAllButton.setOnClickListener(deleteAllButtonListener);

        queryButton.setOnClickListener(queryButtonListener);
        deleteButton.setOnClickListener(deleteButtonListener);
        updateButton.setOnClickListener(updateButtonListener);

        List<String> list = new ArrayList<String>();
        list.add("ID" + "         " + "姓名" + "         " + "班级" + "         " + "学号");
        ArrayAdapter<String> adp = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
        listv.setAdapter(adp);
        dbAdepter = new DBAdapter(this);
        dbAdepter.open();
    }

    OnClickListener addButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            People people = new People();
            people.Name = nameText.getText().toString();
            people.Age = ageText.getText().toString();
            people.Height =heightText.getText().toString();
            long colunm = dbAdepter.insert(people);

            if (colunm == -1 ){
                labelView.setText("添加过程错误!");
            } else {
                labelView.setText("成功添加数据,ID:"+String.valueOf(colunm));
            }
        }
    };

    OnClickListener queryAllButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            People[] peoples = dbAdepter.queryAllData();
            if (peoples == null){
                clear(v);
                labelView.setText("数据库中没有数据");
                return;
            }
            labelView.setText("数据库:");
            String msg = "";
            clear(v);
            for (int i = 0 ; i<peoples.length; i++){
                ArrayAdapter<String> temp_adp = (ArrayAdapter<String>) listv.getAdapter();
                temp_adp.add(peoples[i].ID+"         "+peoples[i].Name+"         "+peoples[i].Age+"         "+peoples[i].Height);
            }
        }
    };

    OnClickListener clearButtonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            clear(v);
        }
    };

    OnClickListener deleteAllButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            dbAdepter.deleteAllData();
            String msg = "数据全部删除";
            labelView.setText(msg);
        }
    };

    OnClickListener queryButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            int id = Integer.parseInt(idEntry.getText().toString());
            People[] peoples = dbAdepter.queryOneData(id);
            if (peoples == null){
                clear(v);
                labelView.setText("数据库中没有ID为"+String.valueOf(id)+"的数据");
                return;
            }
            labelView.setText("数据库:");
            clear(v);
            ArrayAdapter<String> temp_adp = (ArrayAdapter<String>) listv.getAdapter();
            temp_adp.add(peoples[0].ID+"         "+peoples[0].Name+"         "+peoples[0].Age+"         "+peoples[0].Height);
        }
    };

    OnClickListener deleteButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            long id = Integer.parseInt(idEntry.getText().toString());
            long result = dbAdepter.deleteOneData(id);
            String msg = "删除ID为"+idEntry.getText().toString()+"的数据" + (result>0?"成功":"失败");
            labelView.setText(msg);
        }
    };

    OnClickListener updateButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            People people = new People();
            people.Name = nameText.getText().toString();
            people.Age = ageText.getText().toString();
            people.Height = heightText.getText().toString();
            long id = Integer.parseInt(idEntry.getText().toString());
            long count = dbAdepter.updateOneData(id, people);
            if (count == -1 ){
                labelView.setText("更新错误!");
            } else {
                labelView.setText("更新成功,更新数据"+String.valueOf(count)+"条");
            }
        }
    };

}
package com.example.myworksql;
public class People {
    public int ID = -1;
    public String Name;
    public String Age;
    public String Height;

    @Override
    public String toString(){
        String result = "";
        result += "ID:" + this.ID + ",";
        result += "姓名:" + this.Name + ",";
        result += "年龄:" + this.Age + ", ";
        result += "身高:" + this.Height + ",";
        return result;
    }
}


package com.example.myworksql;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DBAdapter {

    private static final String DB_NAME = "peoples.db";
    private static final String DB_TABLE = "peopleinfo";
    private static final int DB_VERSION = 1;

    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_AGE = "age";
    public static final String KEY_HEIGHT = "height";

    private SQLiteDatabase db;
    private final Context context;
    private DBOpenHelper dbOpenHelper;

    public DBAdapter(Context _context) {
        context = _context;
    }

    /** Close the database */
    public void close() {
        if (db != null){
            db.close();
            db = null;
        }
    }

    /** Open the database */
    public void open() throws SQLiteException {
        dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);
        try {
            db = dbOpenHelper.getWritableDatabase();
        }
        catch (SQLiteException ex) {
            db = dbOpenHelper.getReadableDatabase();
        }
    }


    public long insert(People people) {
        ContentValues newValues = new ContentValues();

        newValues.put(KEY_NAME, people.Name);
        newValues.put(KEY_AGE, people.Age);
        newValues.put(KEY_HEIGHT, people.Height);

        return db.insert(DB_TABLE, null, newValues);
    }


    public People[] queryAllData() {
        Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},
                null, null, null, null, null);
        return ConvertToPeople(results);
    }

    public People[] queryOneData(long id) {
        Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},
                KEY_ID + "=" + id, null, null, null, null);
        return ConvertToPeople(results);
    }

    private People[] ConvertToPeople(Cursor cursor){
        int resultCounts = cursor.getCount();
        if (resultCounts == 0 || !cursor.moveToFirst()){
            return null;
        }
        People[] peoples = new People[resultCounts];
        for (int i = 0 ; i<resultCounts; i++){
            peoples[i] = new People();
            peoples[i].ID = cursor.getInt(0);
            int namei=cursor.getColumnIndex(KEY_NAME);
            int agei=cursor.getColumnIndex(KEY_AGE);
            int heighti=cursor.getColumnIndex(KEY_HEIGHT);
            peoples[i].Name = cursor.getString(namei);
            peoples[i].Age = cursor.getString(agei);
            peoples[i].Height = cursor.getString(heighti);

            cursor.moveToNext();
        }
        return peoples;
    }

    public long deleteAllData() {
        return db.delete(DB_TABLE, null, null);
    }

    public long deleteOneData(long id) {
        return db.delete(DB_TABLE,  KEY_ID + "=" + id, null);
    }

    public long updateOneData(long id , People people){
        ContentValues updateValues = new ContentValues();
        updateValues.put(KEY_NAME, people.Name);
        updateValues.put(KEY_AGE, people.Age);
        updateValues.put(KEY_HEIGHT, people.Height);

        return db.update(DB_TABLE, updateValues,  KEY_ID + "=" + id, null);
    }

    /** 静态Helper类,用于建立、更新和打开数据库*/
    private static class DBOpenHelper extends SQLiteOpenHelper {

        public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

        private static final String DB_CREATE = "create table " +
                DB_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " +
                KEY_NAME+ " text not null, " + KEY_AGE+ " text not null," + KEY_HEIGHT + " text not null);";

        @Override
        public void onCreate(SQLiteDatabase _db) {
            _db.execSQL(DB_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) {
            _db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
            onCreate(_db);
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                >
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="班级:"
                    android:textSize="20dp">

                </TextView>
                <EditText
                    android:id="@+id/et_class"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="计算机161"
                    android:textSize="20dp"

                    >

                </EditText>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                >
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="学号:"
                    android:textSize="20dp">

                </TextView>
                <EditText
                    android:id="@+id/et_no"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2016001112"
                    android:textSize="20dp"

                    >

                </EditText>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                >
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="姓名:"
                    android:textSize="20dp">

                </TextView>
                <EditText
                    android:id="@+id/et_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="张晓"
                    android:textSize="20dp"

                    >

                </EditText>
            </LinearLayout>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="添加"
                android:id="@+id/Btn_add"
                >

            </Button>
        </LinearLayout>
        <ListView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/List"
            >

        </ListView>
    </LinearLayout>



</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.mywork3;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.PopupMenu;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    Button btn_a;
    ListView lst;
    int idx = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lst = findViewById(R.id.List);
        btn_a = findViewById(R.id.Btn_add);

        List<String> list = new ArrayList<String>();
        list.add("编号          名字           学号           班级");
        ArrayAdapter<String> adp = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
        lst.setAdapter(adp);

        btn_a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ArrayAdapter<String> temp_adp = (ArrayAdapter<String>) lst.getAdapter();
                EditText et_name = findViewById(R.id.et_name);
                EditText et_no = findViewById(R.id.et_no);
                EditText et_class = findViewById(R.id.et_class);
                temp_adp.add(idx+"     "+et_name.getText().toString()+"     "+et_no.getText().toString()+"     "+et_class.getText().toString());
                //lst.getAdapter();
                idx++;
            }
        });
        lst.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent,
                                           View view,
                                           int position,
                                           long id) {
                if (id>0) {
                    PopupMenu menu = new PopupMenu(MainActivity.this, view);
                    menu.getMenuInflater().inflate(R.menu.popup, menu.getMenu());
                    menu.show();
                    menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                        @Override
                        public boolean onMenuItemClick(MenuItem menuItem) {
                            ArrayAdapter<String> temp_adp = (ArrayAdapter<String>) lst.getAdapter();
                            temp_adp.remove(temp_adp.getItem(position));
                            return false;
                        }
                    });
                }
                return false;
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/search"
        android:icon="@android:drawable/ic_menu_delete"
        android:title="删除" />

</menu>

时间

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout

        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:text="秒表"
            android:textSize="50dp" />

        <TextView
            android:id="@+id/Text_display"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:layout_marginBottom="30dp"
            android:text="00:00:00"
            android:textSize="50dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/But_to0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="清零" />

            <Button
                android:id="@+id/But_Run"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="开始" />

            <Button
                android:id="@+id/But_Stop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="停止" />

            <Button
                android:id="@+id/But_Pause"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="暂停" />
        </LinearLayout>
    </LinearLayout>



</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.mywork5;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    enum State{CLEAR,RUN,STOP,Pause}
    private State S =  State.CLEAR;
    private long count;
    private long count_start;
    private long Pause_time;
    private long Re_start;
    private String result = "00:00:00";
    private Thread work = new Thread(new Runnable() {
        @Override
        public void run() {
            TextView tv= findViewById(R.id.Text_display);
            try {
                while (!Thread.interrupted()){
                    switch (S){
                        case STOP:
                            count = 0;
                            break;
                        case RUN:
                            count = System.currentTimeMillis()-count_start;
                            result = String.valueOf(count);
                            display();
                            break;
                        case CLEAR:
                            result = "00:00:00";
                            count = 0;
                            break;
                        case Pause:
                            //count = 0;
                            break;
                    }
                    tv.post(new Runnable() {
                        @Override
                        public void run() {
                            tv.setText(result);

                        }
                    });
                    Thread.sleep(10);
                }
            }catch (Exception e){

            }
        }
    });
    Boolean s = false;
    void display(){
        long temp = count;
        long temp_S ,temp_ms,temp_m;
        String t_s,t_m,t_ms;
        temp_ms = (count%1000)/10;
        temp_S = (count/1000)%60;
        temp_m = (count/60000)%60;
        if (temp_ms<10){
            t_ms="0"+temp_ms;
        }else {
            t_ms = String.valueOf(temp_ms);
        }
        if (temp_S<10){
            t_s="0"+temp_S;
        }else {
            t_s = String.valueOf(temp_S);
        }
        if (temp_m<10){
            t_m="0"+temp_m;
        }else {
            t_m = String.valueOf(temp_m);
        }
        result = t_m+":"+t_s+":"+t_ms;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt_start = findViewById(R.id.But_Run);
        Button bt_stop = findViewById(R.id.But_Stop);
        Button bt_clear = findViewById(R.id.But_to0);
        Button bt_pause = findViewById(R.id.But_Pause);

        bt_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (S){
                    case CLEAR:
                    case STOP:
                        S = State.RUN;
                        count_start = System.currentTimeMillis();
                        break;
                    case RUN:
                        break;
                    case Pause:
                        S = State.RUN;
                        Re_start = System.currentTimeMillis();
                        Re_start -=(Pause_time-count_start);
                        count_start = Re_start;
                        break;
                    default:
                        break;
                }
            }
        });
        bt_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (S){
                    case CLEAR:
                    case STOP:
                        break;
                    case Pause:
                    case RUN:
                        S = State.STOP;
                        break;
                }
            }
        });
        bt_clear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (S){
                    case CLEAR:
                        break;
                    case RUN:
                    case Pause:
                    case STOP:
                        S = State.CLEAR;
                        break;
                }
            }
        });
        bt_pause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (S){
                    case CLEAR:
                    case Pause:
                    case STOP:
                        break;
                    case RUN:
                        S = State.Pause;
                        Pause_time = System.currentTimeMillis();
                        break;

                }
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();
        work.start();
    }

    @Override
    protected void onStop() {
        super.onStop();
        work.interrupt();
    }
}

计算器

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/linearLayoutbig"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <LinearLayout
            android:id="@+id/linearLayoutword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="100dp"
            android:orientation="vertical"

            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="25dp"
                android:text="计算器"
                android:textSize="28dp" />

            <TextView
                android:id="@+id/text2x"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginTop="25dp"
                android:text="0"
                android:textSize="30dp" />

            <View
                android:layout_width="match_parent"
                android:layout_height="1px"
                android:background="#66CCFF" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayoutone"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="6dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_C"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="C" />

            <Button
                android:id="@+id/btn_CE"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="CE" />

            <Button
                android:id="@+id/btn_sqrt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="" />

            <Button
                android:id="@+id/btn_plus"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="+" />


        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayouttwo"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="6dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_one"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="1" />

            <Button
                android:id="@+id/btn_two"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="2" />

            <Button
                android:id="@+id/btn_three"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="3" />

            <Button
                android:id="@+id/btn_sub"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="-" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayoutthree"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="6dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_four"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="4" />

            <Button
                android:id="@+id/btn_five"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="5" />

            <Button
                android:id="@+id/btn_six"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="6" />

            <Button
                android:id="@+id/btn_multi"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="*" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayoutfour"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="6dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_seven"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="7" />

            <Button
                android:id="@+id/btn_eight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="8" />

            <Button
                android:id="@+id/btn_nine"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="9" />

            <Button
                android:id="@+id/btn_divide"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="/" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayoutfive"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="6dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_piont"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="." />

            <Button
                android:id="@+id/btn_0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="0" />

            <Button
                android:id="@+id/btn_p"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="±" />

            <Button
                android:id="@+id/btn_equal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="=" />
        </LinearLayout>
    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.workforhalfm;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Path;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private static String TAG="LIFTCYCLE";
    Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;
    Button btnC,btnCE,btnsqrt,btnplus,btnsub,btnmulti,btndivide,btnequal,btnpoint,btnaddord;
    TextView text;
//    int s;
//    String ss="";
//    int ty = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG,"(1)onCreate()");

        initViewListener();
    }
    @Override
    public void onStart(){
        super.onStart();
        Log.i(TAG,"(2)onStart()");
    }

    @Override
    protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.i(TAG,"(3)onRestoreInstanceState");
    }


    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG,"(4)onResume()");
    }
    @Override
    public void onSaveInstanceState(Bundle savedInstanceStace){
        super.onSaveInstanceState(savedInstanceStace);
        Log.i(TAG,"(5)onSaveInstanceState()");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG,"(6)onRestart()");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG,"(7)onPause()");

    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG,"(8)onStop()");

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG,"(9)onDestroy()");
    }
    private void initViewListener(){
        btn0 = (Button) findViewById(R.id.btn_0);
        btn0.setOnClickListener(new Click());
        btn1 = (Button) findViewById(R.id.btn_one);
        btn1.setOnClickListener(new Click());
        btn2 = (Button) findViewById(R.id.btn_two);
        btn2.setOnClickListener(new Click());
        btn3 = (Button) findViewById(R.id.btn_three);
        btn3.setOnClickListener(new Click());
        btn4 = (Button) findViewById(R.id.btn_four);
        btn4.setOnClickListener(new Click());
        btn5 = (Button) findViewById(R.id.btn_five);
        btn5.setOnClickListener(new Click());
        btn6 = (Button) findViewById(R.id.btn_six);
        btn6.setOnClickListener(new Click());
        btn7 = (Button) findViewById(R.id.btn_seven);
        btn7.setOnClickListener(new Click());
        btn8 = (Button) findViewById(R.id.btn_eight);
        btn8.setOnClickListener(new Click());
        btn9 = (Button) findViewById(R.id.btn_nine);
        btn9.setOnClickListener(new Click());

        btnC = (Button) findViewById(R.id.btn_C);
        btnC.setOnClickListener(new Click());

        btnCE = (Button) findViewById(R.id.btn_CE);
        btnCE.setOnClickListener(new Click());

        btnsqrt = (Button) findViewById(R.id.btn_sqrt);
        btnsqrt.setOnClickListener(new Click());

        btnplus = (Button) findViewById(R.id.btn_plus);
        btnplus.setOnClickListener(new Click());

        btnsub = (Button) findViewById(R.id.btn_sub);
        btnsub.setOnClickListener(new Click());

        btnmulti = (Button) findViewById(R.id.btn_multi);
        btnmulti.setOnClickListener(new Click());

        btndivide = (Button) findViewById(R.id.btn_divide);
        btndivide.setOnClickListener(new Click());

        btnequal = (Button) findViewById(R.id.btn_equal);
        btnequal.setOnClickListener(new Click());

        btnpoint = (Button) findViewById(R.id.btn_piont);
        btnpoint.setOnClickListener(new Click());

        btnaddord = (Button) findViewById(R.id.btn_p);
        btnaddord.setOnClickListener(new Click());

        text = (TextView) findViewById(R.id.text2x);
        text.setOnClickListener(new Click());
    }
    private boolean LastIsOperator;//记录当前是否进行计算操作
    private String LastOperator="";//记录上一次进行计算操作的结果
    private double FirstN = 0;
    private double SecondN = 0;
    private int IO=0;
    private int ty= 0;
    private boolean clean;
     class Click implements View.OnClickListener {
         public void onClick(View v) {
             String currentText = text.getText().toString();
             String FinNumber = "";
             if (currentText.equals("0")) {
                 text.setText("");
             }
             FinNumber = text.getText().toString();
             if (!LastOperator.equals("")) {//判断上一次操作的数是否为空,非空则建立索引,随之修改当前操作数
                 int index = FinNumber.lastIndexOf(LastOperator);
                 FinNumber = FinNumber.substring(index + 1);
             }
             switch (v.getId()) {
                 case R.id.btn_0:
                     text.setText(text.getText() + "0");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_one:
                     text.setText(text.getText() + "1");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_two:
                     text.setText(text.getText() + "2");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_three:
                     text.setText(text.getText() + "3");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_four:
                     text.setText(text.getText() + "4");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_five:
                     text.setText(text.getText() + "5");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_six:
                     text.setText(text.getText() + "6");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_seven:
                     text.setText(text.getText() + "7");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_eight:
                     text.setText(text.getText() + "8");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_nine:
                     text.setText(text.getText() + "9");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_piont:
                     text.setText(text.getText() + ".");
                     LastIsOperator = false;
                     break;
                 case R.id.btn_C:
                     text.setText("");
                     LastIsOperator = false;
                     FirstN = 0;
                     SecondN = 0;
                     LastOperator = "";
                     break;
                 case R.id.btn_CE:
                     if (TextUtils.isEmpty(text.getText())) {
                         return;
                     }
                     LastIsOperator = false;
                     text.setText(currentText.substring(0, currentText.length() - 1).length() > 0
                             ? currentText.substring(0, currentText.length() - 1) : "0");
                     break;
                 case R.id.btn_divide:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     OpratorCalc(FinNumber, "/");
                     LastIsOperator = true;
                     text.setText(text.getText() + "/");
                     LastOperator = "/";
                     break;
                 case R.id.btn_plus:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     OpratorCalc(FinNumber, "+");
                     LastIsOperator = true;
                     text.setText(text.getText() + "+");
                     LastOperator = "+";
                     break;
                 case R.id.btn_sub:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     OpratorCalc(FinNumber, "-");
                     LastIsOperator = true;
                     text.setText(text.getText() + "-");
                     LastOperator = "-";
                     break;
                 case R.id.btn_multi:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     OpratorCalc(FinNumber, "*");
                     LastIsOperator = true;
                     text.setText(text.getText() + "*");
                     LastOperator = "*";
                     break;
                 case R.id.btn_sqrt:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     OpratorCalc(FinNumber, "√");
                     LastIsOperator = true;
                     text.setText(text.getText() + "√");
                     LastOperator = "√";
                     break;
                 case R.id.btn_equal:
                     double result = 0;
                     if (TextUtils.isEmpty(LastOperator)) {
                         return;
                     }
                     OpratorResult(FinNumber);
                     SecondN = 0;
                     LastOperator = "=";
                     LastIsOperator = true;
                     text.setText(String.valueOf(FirstN));
                     break;
                 case R.id.btn_p:
                     if ((TextUtils.isEmpty(text.getText())
                             || LastIsOperator) && !LastOperator.equals("=")) {
                         return;
                     }
                     LastIsOperator = true;
                     text.setText(text.getText() + "±");
                     LastOperator = "±";
                     break;


             }
         }
     }

    public void OpratorCalc(String operatorNumber,String currentOperator){
        if (TextUtils.isEmpty(LastOperator)){
            FirstN = Double.parseDouble(operatorNumber);
            return;
        }
        if (LastOperator.equals(currentOperator)){
            if (LastOperator.equals("/")){
                FirstN = FirstN/Double.parseDouble(operatorNumber);
            }
            else if(LastOperator.equals("*")){
                FirstN = FirstN*Double.parseDouble(operatorNumber);
            }
            else if(LastOperator.equals("-")){
                FirstN = FirstN-Double.parseDouble(operatorNumber);
            }
            else if(LastOperator.equals("+")){
                FirstN = FirstN+Double.parseDouble(operatorNumber);
            }
            else if(LastOperator.equals("√")){
                FirstN = Math.sqrt(FirstN);
            }
            return;
        }
        Oprator(operatorNumber);
    }
    public void OpratorResult(String OperatorN){
        Oprator(OperatorN);
    }
    public void Oprator(String operatorN){
        if (SecondN != 0){
            if (LastOperator.equals("/")){
                SecondN = SecondN/Double.parseDouble(operatorN);
                FirstN = FirstN/SecondN;
            }
            else if(LastOperator.equals("*")){
                SecondN = SecondN*Double.parseDouble(operatorN);
                FirstN = FirstN*SecondN;
            }
            else if(LastOperator.equals("+")){
                SecondN = Double.parseDouble(operatorN);
                FirstN = FirstN+SecondN;
            }
            else if(LastOperator.equals("-")){
                SecondN = Double.parseDouble(operatorN);
                FirstN = FirstN-SecondN;
            }
            else if(LastOperator.equals("√")){

            }
        }
        else {
            if (LastOperator.equals("/")){
                FirstN = FirstN/Double.parseDouble(operatorN);
            }
            else if(LastOperator.equals("*")){
                FirstN = FirstN*Double.parseDouble(operatorN);
            }
            else if(LastOperator.equals("+")){
                FirstN = FirstN+Double.parseDouble(operatorN);
            }
            else if(LastOperator.equals("-")){
                FirstN = FirstN-Double.parseDouble(operatorN);
            }
            else if (LastOperator.equals("√")){
                FirstN = Math.sqrt(FirstN);
            }
        }
    }
}



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.workforhalfm">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.WorkForHalfm">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

生命周期

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

package com.example.myapplication;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private static String TAG="LIFTCYCLE";
    //private Object view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG,"(1)onCreate()");
        //Button button=(Button) findViewById(R.id.btn_finish);
//        button.setOnClickListener(new View.OnClickListener(){
//            public void onClick(View view){
//                finish();
//            }
//        });
    }
@Override
public void onStart(){
        super.onStart();
        Log.i(TAG,"(2)onStart()");
}

    @Override
    protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.i(TAG,"(3)onRestoreInstanceState");
    }


    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG,"(4)onResume()");
    }
    @Override
    public void onSaveInstanceState(Bundle savedInstanceStace){
        super.onSaveInstanceState(savedInstanceStace);
        Log.i(TAG,"(5)onSaveInstanceState()");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG,"(6)onRestart()");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG,"(7)onPause()");

    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG,"(8)onStop()");

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG,"(9)onDestroy()");
    }
}

组件通信

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/Bt_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:layout_marginBottom="63dp"
            android:text="登录"
            app:layout_constraintBottom_toTopOf="@+id/textView"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_margin="50dp">

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="用户名" />

            <EditText
                android:id="@+id/Edit_n"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="100dp"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:layout_marginLeft="30dp"

            />
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="half_m"
            android:id="@+id/Edit_Name"
            />
    </LinearLayout>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="返回"
        android:layout_marginTop="80dp"
        android:id="@+id/Btn_return"
        android:layout_gravity="center"
        >
    </Button>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.myapplication;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    EditText tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.Bt_login);
        tv= findViewById(R.id.Edit_n);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intt = new Intent(MainActivity.this,MainActivity2.class);
                startActivityForResult(intt,0);
                //startActivityForResult(intt,0);

            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0){
            tv.setText(data.getStringExtra("name"));
        }

    }
}
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Button bt = findViewById(R.id.Btn_return);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText et = findViewById(R.id.Edit_Name);
                Intent result = new Intent();
                result.putExtra("name",et.getText().toString());
                setResult(0,result);

                finish();
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication">
        <activity
            android:name=".MainActivity2"
            android:exported="true" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值