IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android开发一个简单的交互式App -> 正文阅读

[移动开发]Android开发一个简单的交互式App

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">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            tools:layout_editor_absoluteX="186dp"
            tools:layout_editor_absoluteY="366dp">
    
            <Spinner
                android:id="@+id/feature"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:entries="@array/feature"
                android:minHeight="32dp" />
    
            <Button
                android:id="@+id/find_language"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:onClick="onClickButton"
                android:text="@string/find_language" />
    
            <TextView
                android: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 {
        @Override
        protected 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();
    
        @Override
        protected 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、测试结果

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:40:21  更:2021-09-24 10:40:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:37:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码