实验7 多用户界面、菜单以及对话框程序设计

news2025/1/20 12:04:01

实验内容

1.设计一个具有两个页面的程序,第一个页面显示一张封面的图片,第二个页面显示“欢迎进入本系统”,这两个页面之间能相互切换。   
2.设计一个具有3个选项的菜单程序,当单击每个选项时,分别跳转到3个不同的页面。
3.设计一个具有计算器功能的对话框程序。

1.activity_main.xml源代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="520dp"
        android:src="@drawable/icon"/>
    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:text="进入主页"
        android:textSize="30sp" />

</LinearLayout>

MainActivity.java源代码:

package com.example.helloworld;
import androidx.annotation.CheckResult;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.provider.ContactsContract;
import android.view.Gravity;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;//文本标签
import android.widget.Button;//按钮
import android.widget.EditText;//文本编辑框
import android.widget.Toast;
import android.widget.ListView;
import android.widget.ImageView;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;
import android.content.Intent;
import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    private TextView txt,txt1,txt2,txt3,txt4,txt5;
    private Button button1,button2,button3,btn;
    private EditText edit1,edit2,edit3,edit4;
    ListView list;
    ProgressBar progress;
    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.btn1);
        btn.setOnClickListener(new mClick());
    }
    class mClick implements OnClickListener{
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(MainActivity.this,secondActivity.class);
            startActivity(intent);
        }
    }
}

secondActivity.java代码:
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
public class secondActivity extends Activity{
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
    }
}

second.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal">
    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal"
        android:text="欢迎进入本系统"
        android:textSize="32sp" />
</LinearLayout>

结果图:
请添加图片描述
2.activity_main.xml源代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我喜欢的音乐(点击跳转)"
        android:textSize="30sp"/>
    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="若把你"
        android:textSize="20sp" />
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下个路口见"
        android:textSize="20sp" />
    <Button
        android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Umbrella"
        android:textSize="20sp" />
</LinearLayout>

MainActivity.java源代码:

package com.example.helloworld;
import androidx.annotation.CheckResult;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.provider.ContactsContract;
import android.view.Gravity;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;//文本标签
import android.widget.Button;//按钮
import android.widget.EditText;//文本编辑框
import android.widget.Toast;
import android.widget.ListView;
import android.widget.ImageView;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;
import android.content.Intent;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    private TextView txt,txt1,txt2,txt3,txt4,txt5;
    private Button button1,button2,button3,btn;
    private EditText edit1,edit2,edit3,edit4;
    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=(Button)findViewById(R.id.btn1);
        button2=(Button)findViewById(R.id.btn2);
        button3=(Button)findViewById(R.id.btn3);
        button1.setOnClickListener(new mClick1());
        button2.setOnClickListener(new mClick2());
        button3.setOnClickListener(new mClick3());
    }
    class mClick1 implements OnClickListener{
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(MainActivity.this,firstActivity.class);
            startActivity(intent);
        }
    }
    class mClick2 implements OnClickListener{
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(MainActivity.this,secondActivity.class);
            startActivity(intent);
        }
    }
    class mClick3 implements OnClickListener{
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(MainActivity.this,thirdActivity.class);
            startActivity(intent);
        }
    }
}

first.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/pic1" />

</LinearLayout>

firstActivity.java代码:

package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;

public class firstActivity extends Activity{
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);
    }
}

second.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal">
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/pic2" />

</LinearLayout>

secondActivity.java代码:

package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;

public class secondActivity extends Activity{
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
    }
}

third.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal">
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/pic3" />

</LinearLayout>

thirdActivity.java代码:

package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;

public class thirdActivity extends Activity{
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third);
    }
}

需要注意的是切换多个页面时,要在AndroidManifest.xml
中添加对应的xml的注册
请添加图片描述

结果图:
请添加图片描述
3.MainActivity.java代码:

package com.example.helloworld;
import androidx.annotation.CheckResult;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.provider.ContactsContract;
import android.view.Gravity;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RadioButton;
import android.widget.TextView;//文本标签
import android.widget.Button;//按钮
import android.widget.EditText;//文本编辑框
import android.widget.Toast;
import android.widget.ListView;
import android.widget.ImageView;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;
import android.content.Intent;
import android.app.AlertDialog;
import android.content.DialogInterface;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    private TextView txt,txt1,txt2,txt3,txt4,txt5;
    private Button button1,button2,button3,btn;
    private EditText edit1,edit2,edit3,edit4;
    LinearLayout com;
    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=(Button)findViewById(R.id.btn1);
        button1.setOnClickListener(new mClick1());
    }
    class mClick1 implements OnClickListener{
        AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
        @Override
        public void onClick(View view) {
            com=(LinearLayout)getLayoutInflater().inflate(R.layout.compute,null);
            dialog.setTitle("计算机对话框").setView(com);
            dialog.setPositiveButton("显示结果",new resClick());
            dialog.create();
            dialog.show();
        }
    }
    class resClick implements DialogInterface.OnClickListener{
        EditText e1=(EditText)com.findViewById(R.id.myEditText1);
        EditText e2=(EditText)com.findViewById(R.id.myEditText2);
        @Override
        public void onClick(DialogInterface dialog, int i) {
            String str1=e1.getText().toString();
            String str2=e2.getText().toString();
            int a=Integer.parseInt(str1);
            int b=Integer.parseInt(str2);
            int c=a+b;
            Toast.makeText(getApplicationContext(),Integer.toString(c),Toast.LENGTH_LONG).show();
            dialog.dismiss();
        }
    }
}

activity_main.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开计算器对话框"
        android:layout_gravity="center"
        android:textSize="30sp" />

</LinearLayout>

compute.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:gravity="center|fill">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/myEditText1"
            android:layout_width="40dp"
            android:layout_height="50dp"
            android:layout_x="50dp"
            android:layout_y="50dp"
            android:autofillHints=""
            android:inputType="number"
            android:textSize="24sp"
            tools:ignore="LabelFor,SpeakableTextPresentCheck,TouchTargetSizeCheck" />

        <TextView
            android:id="@+id/textview1"
            android:layout_width="25dp"
            android:layout_height='59dp'
            android:text="+"
            android:textSize="24sp" />
        <EditText
            android:id="@+id/myEditText2"
            android:layout_width="40dp"
            android:layout_height="50dp"
            android:layout_x="50dp"
            android:layout_y="50dp"
            android:inputType="number"
            android:textSize="24sp"
            tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
        
    </LinearLayout>
</LinearLayout>

结果:
请添加图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556067.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验

文章目录 一、活动介绍二、环境搭建三、安装本地的 Kind 集群和 Crane 组件四、界面截图五、主要功能六、整体架构七、Crane的优势八、总结参考文献 一、活动介绍 Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目&#xff0c;遵循 FinOps 标准&#xff0c;…

零基础如何入门网络安全?一般人还真不行

前景 很多零基础朋友开始将网络安全作为发展的大方向&#xff0c;的确&#xff0c;现如今网络安全已经成为了一个新的就业风口&#xff0c;不仅大学里开设相关学科&#xff0c;连市场上也开始大量招人。 那么网络安全到底前景如何&#xff1f;大致从市场规模、政策扶持、就业…

信息收集-目录信息

&#xff08;一&#xff09;目录结构 网页的目录结构跟整个网站的布局有关&#xff0c;收集到的信息可以包括目录名称、目录结构、目录所包含的文件、文件类型、文件大小等。收集到的信息有助于评估网站的安全性、了解网站的架构和目录结构&#xff0c;甚至可能有助于发现敏感…

3个月出国|材料科学老师自费赴韩国访学

K老师指定韩国为访学的目标国家&#xff0c;希望专业匹配&#xff0c;尽快出国。最终我们获得了韩国庆北大学的邀请函&#xff0c;其学校名气、专业匹配度及导师影响力都符合K老师的要求。本案例从开始委托我们申请到最终出国&#xff0c;仅仅用时3个月。 K老师背景&#xff1a…

基于pytest的接口测试框架详解,一定有你想知道的

目录 需求一&#xff1a;一套用例可以测试多套环境 需求二: 可以被jenkins调度执行 需求三 拥有测试报告 需求四&#xff1a;接口中某些字段值在每次请求中不重复 需求五&#xff1a; 可以多接口关联测试 需求六 构造的表数据可以和接口字段数据关联 需求七 pytest用例和…

java内部类和异常类1

文章目录 一、Java内部类二、Java匿名类总结 一、Java内部类 成员变量和方法&#xff0c;实际上&#xff0c;类还有一种成员&#xff1a;内部类。在一个类中定义另一个类&#xff0c;我们把这样的类称作内部类&#xff0c;包含内部类的类称作内部类的外嵌类。 内部类和外嵌类…

编辑距离00

题目链接 爬楼梯 题目描述 注意点 word1 和 word2 由小写英文字母组成返回将 word1 转换成 word2 所使用的最少操作数 解答思路 本题本质上的操作只有三种&#xff1a;在单词 A 中插入一个字符&#xff1b;在单词 B 中插入一个字符&#xff1b;修改单词 A 的一个字符&…

OpenGL之元素缓冲对象

文章目录 EBO(元素缓冲对象)创建元素缓冲对象创建两个相邻不同颜色的三角形 EBO(元素缓冲对象) 素缓冲对象(Element Buffer Object&#xff0c;EBO)&#xff0c;也叫索引缓冲对象(Index Buffer Object&#xff0c;IBO)。要解释元素缓冲对象的工作方式最好还是举个例子&#xf…

【Python redis】零基础也能轻松掌握的学习路线与参考资料

Python redis是一种非常流行的缓存数据库&#xff0c;对于Python Web应用程序开发非常有用&#xff0c;能快速地处理大量的数据请求。Python redis的学习路线需要对Python语言有深刻的理解&#xff0c;并了解使用redis的API。在掌握了Python redis的基本知识后&#xff0c;就可…

这个 希尔排序详解过程 我能吹一辈子!!!

文章目录 希尔排序概念希尔排序算法思路希尔排序实现 希尔排序概念 希尔排序&#xff08;Shellsort&#xff09;也是一种插入排序&#xff0c;它是简单插入排序经过改进之后的一个更高效的版本&#xff0c;也称为缩小增量排序。希尔&#xff08;Donald Shell&#xff09;于1959…

关系数据库设计理论

关系数据库设计理论 目录 关系数据库设计理论是什么函数依赖完全函数依赖(Full Functional Dependency)部分函数依赖(Partial Functional Dependency)传递函数依赖(Transitive Functional Dependency) 异常插入异常(Insertion Anomaly)更新异常(Update Anomaly)删除异常(Deleti…

Mit6.006-problemSession04

4-1 序列旋转 下面是一个序列AVL树T。执行操作T.delete_at(8)&#xff0c;该操作期间&#xff0c;每次旋转操作执行完后&#xff0c;画出该树。 4-2 Fick Nury Fick Nury领导n名超级英雄组成了精英团队——复仇者联盟。他听说&#xff1a;超人Sanos正在一个遥远星球上制造麻烦…

【JVM】7. 方法区

文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里&#xff1f;7.2.2. 方法区的基本理解7.2.3. HotSpot中方法区的演进 7.3. 设置方法区大小与OOM7.3.1. 设置方法区内存的大小7.3.2. 如何解决这些OOM 7.4. 方法区的内部结构7.4.1. 方法区&…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问)

《汇编语言》- 读书笔记 - 第3章-寄存器&#xff08;内存访问&#xff09; 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

【数据结构】顺序表---C语言版(数据结构开篇小菜,全网最详细!小白看一遍就学会!!!)

文章目录 &#x1f354;一、前言&#x1f35f;1. 什么是数据结构 &#x1f354;二、顺序表的概念----线性表&#x1f35f;1. 什么是线性表&#x1f35f;2. 顺序表与数组的区别 &#x1f354;三、顺序表详解&#x1f4a7; 静态顺序表&#x1f4a7; 动态顺序表&#x1f34e;创建动…

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)

本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误&#xff0c;提供博主的一些解决方法&#xff0c;若有更好的解决方法&#xff0c;大家也可以在评论区发表自己的意见噢&#xff0c;话不多说&#xff0c;开始上菜&#xff1a; 此博主在CSDN发布…

【面试题】Redis缓存设计

文章目录 Redis缓存出现的问题&#x1f64e;‍♂️面试官&#xff1a;什么是缓存雪崩&#xff1f;&#x1f64e;‍♂️面试官&#xff1a;怎样解决缓存雪崩&#xff1f;&#x1f64e;‍♂️面试官&#xff1a;什么是缓存击穿&#xff1f;&#x1f64e;‍♂️面试官&#xff1a;…

Nacos集群和持久化配置

1.Nacos集群 1.1.架构说明 官方文档 集群部署架构图 因此开源的时候推荐用户把所有服务列表放到一个vip下面&#xff0c;然后挂到一个域名下面 http://ip1:port/openAPI直连ip模式&#xff0c;机器挂则需要修改ip才可以使用 http://VIP:port/openAPI挂载VIP模式&#xff0c;直…

【TOOLS: Linux与windows及linux与linux之间文件传输常用方法及命令】

文章目录 1.1.1 Windows和VirtualBox(Ubuntu)之间文件穿传输方法1.1.2 SCP 文件传输方法1.1.3 FTP 文件传输方法 1.1.1 Windows和VirtualBox(Ubuntu)之间文件穿传输方法 1&#xff09;设置 virtualbox 中的共享文件夹&#xff0c;用户可以在windows某个盘下创建自己的共享文件…

chatgpt赋能Python-python_6_66_666

Python 666666&#xff1a;学习Python的不同层次 Python是一种高级编程语言&#xff0c;被广泛用于机器学习、人工智能、web开发等领域。它简单易学&#xff0c;具有良好的可读性和可扩展性&#xff0c;因此受到众多程序员的喜爱。 在学习Python的过程中&#xff0c;我们可以…