• .NET MAUI 安卓应用开发初体验


    一、.NET MAUI开发环境搭建&安卓SDK和安卓模拟器安装提示网络连接失败问题解决

    引言

    本节目标是帮助第一次搭建.NET MAUI开发环境,在下载安卓SDK和安卓模拟器过程中一直提示网络问题解决思路。

    现象一:Visiual Studio 2022中添加Android设备管理时,提示系统映像下载错误:Network is not reachable. Please check your connection and try again.

    现象二:Visiual Studio 2022中添加Android SDK和工具时,提示"网络不可用。请检查你的连接,然后再重试"

    .NET MAUI 简介

    官方文档

    什么是 .NET MAUI? - .NET MAUI | Microsoft Learn

    .NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML.

    Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, and Windows from a single shared code-base.

    image

    .NET MAUI 全称 .NET Multi-platform App UI

    开发环境介绍

    VS版本:Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.4.1

    .NET 版本:.NET 7.0 STS

    安装【 .NET Multi-platform App UI 开发】

    Android SDK 和 安卓模拟器

    这里直接介绍出现网络问题后,解决方案

    1、查看VS中 Android SDK 保存位置

    2、安装 JAVA JDK,并配置在系统环境中JAVA_HOME (可以选择JDK11或者JDK 8.0)

    3、下载并安装 Android Studio

    4、启动Android Studio,设置国内镜像

    镜像地址:http://mirrors.neusoft.edu.cn/

    5、设置 Android SDK 保存位置,将Android Studio 中SDK 保存位置 和 VS 中一样

    6、下载对应的Android SDK 和 Android Emulator

    7、通过AVD Manager新建安卓模拟设备

    二、第一个.NET MAUI 安卓应用程序

    跟着官方文档,开启第一个.NET MAUI 程序

    新建一个.NET MAUI应用程序

    运行效果

    项目截图

    MainViewModel

    新建ViewModel文件夹,添加MainViewModel类,继承ObservableObject。通过NuGet添加CommunityToolkit.Mvvm 8.1.0-preview1 依赖项。

      public partial class MainViewModel : ObservableObject
        {
            public MainViewModel()
            {
                this.Items= new ObservableCollection<string>();
            }
            [ObservableProperty]
            public string inputText;
    
            [ObservableProperty]
            public ObservableCollection<string> items;
    
            [RelayCommand]
            public void Add()
            {
                if (!string.IsNullOrWhiteSpace(InputText))
                {
                    Items.Add(InputText);
                    InputText = string.Empty;
                }
            }
    
            [RelayCommand]
            public void Remove(string item)
            {
                if (Items.Contains(item))
                {
                    Items.Remove(item);
                }
            }
        }
    

    MainPage.xaml

    
    
    
        
    
            
    
            
    
            

    MainPage.xaml.cs

      public MainPage(MainViewModel viewModel)
      {
           	 InitializeComponent();
             this.BindingContext = viewModel;
       }
    

    MauiProgram.cs

      public static class MauiProgram
        {
            public static MauiApp CreateMauiApp()
            {
                var builder = MauiApp.CreateBuilder();
                builder
                    .UseMauiApp()
                    .ConfigureFonts(fonts =>
                    {
                        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                        fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                    });
    
    #if DEBUG
    		builder.Logging.AddDebug();
    #endif
                builder.Services.AddSingleton();
                builder.Services.AddSingleton();
                
                return builder.Build();
            }
        }
    

    至此,一个完整的.NET MAUI完成了,让我们一起享受.NET MAUI之旅吧!

    后记

     "Delete" 
                IconImageSource="delete.png"
                BackgroundColor="LightPink" 
                Command="{Binding Source={RelativeSource AncestorType={x:Type viewModel:MainViewModel}}, Path=RemoveCommand}"
                CommandParameter="{Binding .}"/>
    

    SwipeItem的Command实际没有生效,目前还没有找到原因

  • 相关阅读:
    【附源码】Python计算机毕业设计企业人事管理系统
    NumPy学习笔记(六)——sum()函数
    软件建模与分析
    mysql批量改表名及列名
    详解 Optional 的使用,优雅的解决空指针异常
    安装SQL Server详细教程
    软件测试面试题库和答案解析
    微计算机断层扫描的用途以及测试样品要求
    Vue3.2 中 Setup 语法糖
    【java深入学习第2章】Spring Boot 结合 Screw:高效生成数据库设计文档之道
  • 原文地址:https://www.cnblogs.com/xuyegui/p/16915162.html