1、功能分析

  • Layout定义App外观

    • 下拉列表列出编程语言的特点
    • 点击按钮,开始处理
    • 文本框显示推荐的编程语言
  • 字符存储在strings.xml
  • activity定义App与用户的交互方式
    • 根据用户在下拉列表的选择,在文本框中返回编程语言
  • 定制的Java程序中包含业务逻辑
    • 存储并输出语言与特点的对应关系

2、开发视图布局

  • activity_main.xml

    <?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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="186dp"tools:layout_editor_absoluteY="366dp"><Spinnerandroid:id="@+id/feature"android:layout_width="match_parent"android:layout_height="wrap_content"android:entries="@array/feature"android:minHeight="32dp" /><Buttonandroid:id="@+id/find_language"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickButton"android:text="@string/find_language" /><TextViewandroid:id="@+id/language"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/language" /></LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    
  • strings.xml

    <resources><string name="app_name">ProgramAdviser</string><string name="find_language">Find Language</string><string name="language">Select and Click</string><string-array name="feature"><item>fast</item><item>easy</item><item>new</item><item>OO</item></string-array>
    </resources>
    
  • 预览

3、按钮事件响应

  • MainActivity类

    public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClickButton(View button){//获得Spinner引用Spinner spinner = findViewById(R.id.feature);//获得Spinner选项String feature = spinner.getSelectedItem().toString();//获得TextView引用TextView textView = findViewById(R.id.language);//设置TextView文字textView.setText(feature);}
    }
    

4、开发模型层

  • ProgramExpert类,和MainActivity同级

    public class ProgramExpert {public String getLangunage(String feature){String result;switch (feature){case "fast":result = "C/C++";break;case "easy":result = "Python";break;case "new":result = "Kotlin";break;case "OO" :result = "Java";break;default:result = "You got me";}return result;}
    }
    
  • 修改MainActivity类

    package szst.it.ping.programadviser;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
    import android.view.View;
    import android.widget.Spinner;
    import android.widget.TextView;public class MainActivity extends AppCompatActivity {//private封装实例变量,final保证expert被初始化//final的实例变量赋值后无法改变,声明后必须立即初始化private final ProgramExpert expert = new ProgramExpert();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClickButton(View button){//获得Spinner引用Spinner spinner = findViewById(R.id.feature);//获得Spinner选项String feature = spinner.getSelectedItem().toString();//查询模型层String langunage = expert.getLangunage(feature);//获得TextView引用TextView textView = findViewById(R.id.language);//设置TextView文字//textView.setText(feature);textView.setText(langunage);}
    }
    

5、测试结果

Android开发一个简单的交互式App相关推荐

  1. 一个html写的app首页,如何快速开发一个简单好看的APP控制页面

    原标题:如何快速开发一个简单好看的APP控制页面 导读 机智云开源框架为了让开发者快速开发APP,已将用户登录,设备发现,设备配网等功能做成了各个标准模块,仅保留控制页面让开发者自行开发设计,节省了开 ...

  2. 『牛角书』HarmonyOS鸿蒙实战 开发一个简单聊天助手APP

    前言 我是通过b站上面老师的讲解,跟着老师编写了一个简单聊天助手app,简答实用,对于刚开始接触鸿蒙的我们来说很有帮助. 创建项目 所用软件为DevEco Studio,点击Create Harmon ...

  3. Android Compose——一个简单的Bilibili APP

    Bilibili移动端APP 简介 依赖 效果 登录 效果 WebView 自定义TobRow的Indicator大小 首页 推荐 LazyGridView使用Paging3 热门 排行榜 搜索 模糊 ...

  4. 用android开发一个识别人形的app,一键切换背景

    前言:我是小松,今年大四,在android开发中持续耕耘,快来一起学习把 不知道大家有没有这种烦恼,手上有白底的证件照,但是学校偏偏要交红底的,万般无奈只能去照相馆再照,虽说可以进行PS,但是总归麻烦 ...

  5. Android开发之简单快速对APP进行GIF动图生成

    前提: 1.在对APP进行GIF动图生成之前,需要配置ADB(Android Debug Bridge),具体百度,在这里就不做赘述了. 2.准备一个播放器,迅雷.暴风.QQ之类的.将adb命令录制的 ...

  6. Android Compose——一个简单的新闻APP

    Owl 简述 效果视频 导航 导航结点 路线图 底部导航栏 使用 标签页 状态切换 FeaturePage 构建 CoursePage 实现 搜索 ViewModel View 详情页 Detail ...

  7. android studio的GearVR应用开发(二)、一个简单的VR app(Oculus官方GearVR开发教程,翻译转载)

    声明:本文是Oculus官方的GearVR开发教程,为本人翻译转载,供广大VR开发爱好者一同学习进步使用. 原文章 一个简单的VR app 概观 在搭建好GearVR框架后,让我们一起来创建第一个VR ...

  8. 一个基于Android开发的简单的音乐播放器

    一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...

  9. 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...

    适用于Android开发的简单聊天软件 适用于android 开发.是一个简单的聊天软件,包括知识点,各个控件的运用(ExpandableListView,ViewPager,Spinner,Line ...

  10. 用Android Studio设计的一个简单的闹钟APP

    该闹钟是用Android Studio为安卓手机设计的一个简单的闹钟APP 一.介绍系统的设计界面 闹钟的布局文件代码如下 <?xml version="1.0" encod ...

最新文章

  1. ChartDirector资料小结
  2. python课程设计汽车销售管理系统_Python课程设计:汽车销售管理系统
  3. 【毕业前夕,畅谈科研】一个清华土著的科研感想
  4. jQuery实现一个优雅的返回顶部
  5. Where与Having的区别
  6. 我混了大半辈子,忽然成了拆二代
  7. SVN(TortoiseSVN)提交时忽略bin跟obj目录
  8. 批处理 备份网络数据
  9. #55 #56 #58 #59 #60 #66
  10. opencv 训练人脸对比_Page21-树莓派4B人脸检测与识别(opencv)
  11. 刷机工具-fastboot
  12. 绘制自己的人际关系图_绘制自己的人际关系网
  13. html编写在线打字通,HTML5代码打字练习、HTML5案例 - 02
  14. 什么是大数据技术架构
  15. 为什么管理创新总是发生在汽车行业?
  16. 作为数据分析师,这6款数据分析热门工具,你不能错过~
  17. 努比亚android最高版本,努比亚Z11安卓7.1固件开发版下载地址:新增压力按键等功能...
  18. FPGA电源设计方案
  19. 哈夫曼树(Huffman Tree)及哈夫曼编码(Huffman Coding)
  20. python操作Excel之openxlpy

热门文章

  1. 主数据同步与分发实现
  2. BP(back propagation)误差逆传播神经网络
  3. 高斯消元法求矩阵的逆
  4. IMAGE_IMPORT_DESCRIPTOR
  5. 把数字翻译成英文声明.C语言,如何把数字翻译成英文
  6. 2022年全球市场HTCC陶瓷封装总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. Kali Linux 基于Easy File Sharing Web Server 6.9 编写漏洞渗透模块 (上)
  8. Hibernate - HQL对象检索详解
  9. 计算机课程总结800字,计算机课程心得体会范文800字(通用5篇)
  10. 【整理】一个真实的图灵:如迷的解谜者,并非万事成谜