【Android Studio】如何创建第一个AS程序

如何创建一个新的Android项目

在Android Studio上创建一个新的项目起初看似并不困难,笔者在傻瓜式的一步步next操作下也创建出了一个新的Android项目,然而在后期的操作中出现了诸多问题,经过不懈的百度和Google后发现在最开始的创建新项目的一步步选择中就埋下了祸根(主要还是笔者看不懂英语),在这里推荐参考Android studio 入门教程(案例)来创建你的第一个Android Studio项目。
在这里笔者仅记录自己所遇到的问题:
设置Activity的名称和Layout的名称
在这一步时最后一个框不能勾选,否则可能!可能!可能!(笔者暂时也并不懂原理)会引起项目异常

Android项目的主要文件

在这里插入图片描述

  • app :通常Android的各个组成部分放在此目录中,其中res主要存放一些资源文件,如图片、layout、values等资源。
    • build: 构建目录
    • libs: 依赖的包
    • src:
      • androidTest: android单元测试的目录
      • main:
        • Java: 写Java代码的地方
          • MainActivity :是一个人机交互的程序,相当于人与计算机沟通的手段,在这里面写java代码,从而达到想要实现的目的。
      • res: 资源文件
        • drawable: 图像资源
        • layout: 布局资源
          • activity_main.xml :是控制Android界面显示的文件,所有的配置控件都可以在这里进行设计。
        • mipmap: 图像资源
        • menu: 菜单资源(图中未给出)
        • value:
          • colors: 色彩资源
          • string: 字符串资源
          • demens: css配置文件,定义尺寸资源(图中未给出)
          • styles: style资源
        • AndroidManifest.xml: 主配置文件,用于配置各个组件的访问权限

R.java :简单说就是activity_main.xml里控件的id号,方便在MainActivity中通过查找id来确定该控件,从而使用该控件。

Android Studio自带的虚拟机运行问题

在笔者一步一步进行到运行Android虚拟机时,虚拟机并不能正常启动,在又一顿烦人的百度Google后,笔者采用Android Studio打不开虚拟机,两种情况详解中的第一种情况的处理方法成功启动了虚拟机,并从该文章中发现笔者的问题是未安装好HAXM及系统未启用虚拟化技术。
处理方

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 RecyclerView 来制作一个日历,首先需要了解 RecyclerView 的基本使用方法。 RecyclerView 是一个强大的 Android UI 组件,用于在列表和网格视图中显示大量数据。它使用 ViewHolder 模式来重用视图以提高性能,并支持大量的自定义选项。 下面是基本的 RecyclerView 使用方法: 1. 在布局文件中添加 RecyclerView 组件: ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 创建 RecyclerView.Adapter 子类来管理数据,并实现 onCreateViewHolder、onBindViewHolder 和 getItemCount 方法: ``` class MyAdapter(private val myDataset: Array<String>) : RecyclerView.Adapter<MyAdapter.MyViewHolder>() { class MyViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyAdapter.MyViewHolder { val textView = LayoutInflater.from(parent.context) .inflate(R.layout.my_text_view, parent, false) as TextView return MyViewHolder(textView) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { holder.textView.text = myDataset[position] } override fun getItemCount() = myDataset.size } ``` 3. 在 RecyclerView 中设置 LayoutManager 和 Adapter: ``` val recyclerView = findViewById<RecyclerView>(R.id.recycler_view) recyclerView.layoutManager = LinearLayoutManager(this) val myDataset = arrayOf("Item 1", "Item 2", "Item 3") recyclerView.adapter = MyAdapter(myDataset) ``` 接下来,我们可以使用 RecyclerView 来制作一个日历。下面是一个简单的示例: 1. 创建一个名为 DayAdapter 的 RecyclerView.Adapter 子类,用于管理日历中的日期。 ``` class DayAdapter(private val days: List<Day>) : RecyclerView.Adapter<DayAdapter.DayViewHolder>() { class DayViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DayViewHolder { val textView = LayoutInflater.from(parent.context) .inflate(R.layout.day_view, parent, false) as TextView return DayViewHolder(textView) } override fun onBindViewHolder(holder: DayViewHolder, position: Int) { val day = days[position] holder.textView.text = day.date.toString() holder.textView.setTextColor(if (day.isCurrentMonth) Color.BLACK else Color.GRAY) } override fun getItemCount() = days.size } ``` 2. 创建一个名为 Day 的数据类,表示日历中的日期。 ``` data class Day(val date: Int, val isCurrentMonth: Boolean) ``` 3. 在布局文件中添加 RecyclerView 组件。 ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 4. 在 Activity 中设置 RecyclerView 的 LayoutManager 和 Adapter。 ``` val recyclerView = findViewById<RecyclerView>(R.id.recycler_view) recyclerView.layoutManager = GridLayoutManager(this, 7) val days = getDays() recyclerView.adapter = DayAdapter(days) ``` 5. 创建一个名为 getDays 的函数,用于生成日历中的日期数据。 ``` private fun getDays(): List<Day> { val today = Calendar.getInstance() val firstDayOfMonth = Calendar.getInstance() firstDayOfMonth.set(Calendar.DAY_OF_MONTH, 1) val daysInMonth = firstDayOfMonth.getActualMaximum(Calendar.DAY_OF_MONTH) val firstDayOfWeek = firstDayOfMonth.get(Calendar.DAY_OF_WEEK) val days = mutableListOf<Day>() var date = 1 for (i in 1..42) { if (i < firstDayOfWeek || i >= firstDayOfWeek + daysInMonth) { days.add(Day(0, false)) } else { days.add(Day(date, true)) date++ } } return days } ``` 这个函数会返回一个包含日历中所有日期的列表,其中每个元素是一个 Day 对象。该函数使用 Calendar 类来计算当前月份的第一天和该月份有多少天,然后根据日历中的行和列填充日期。如果某个日期不属于当前月份,则其值为 0,isCurrentMonth 属性为 false。否则,isCurrentMonth 属性为 true。 最后,我们需要创建一个 day_view.xml 文件,用于定义每个日期的外观。该文件可以包含一个 TextView 组件,用于显示日期。例如: ``` <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/day_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:padding="8dp" /> ``` 这样,我们就可以使用 RecyclerView 来制作一个日历了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值