学习android第二天

活动

活动是一种可以包含用户界面的组件,主要用于与用户进行交互。

在创建项目时选择Add No Activity,即可手动创建活动

先把项目结构从Android模式改为Project模式,

右击com.example.activities包—>New—>Activity—>Empty Activity,

不勾选Generate Layout File和Launcher Activity,

勾选Generate Layout File 表示会自动为这个活动创建一个对应的布局文件
勾选Launcher Activity 表示自动将这个活动设置为当前项目的主活动

创建和加载布局

这里先放着后面补充

布局文件中已有一个LinearLayout元素,接下来尝试添加一个按钮

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"<Buttonandroid:id="@+id/button_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button 1"/> </LinearLayout>

注意:

  • android:id 是给当前元素定义一个唯一标识符
  • 在XML中引用一个id:@id/id_name
  • 在XML中定义一个id:@+id/id_name
  • android:layout_width和android:layout_height分别指定元素的宽度和高度
  • match_parent表示和父元素一样宽(高),wrap_content表示当前元素的高度刚好包含里面的内容

加载布局
可以在活动中调用setContentView()方法来给当前活动加载一个布局,
如:setContentView(R.layout.first_layout);
我们需要传入一个布局文件的id
项目中添加的任何资源都会在R文件中生成一个相应的资源id,我们只需调用R.layout.first_layout就能得到first_layout.xml布局的id

注册活动

所有活动都要在AndroidManifest.xml中进行注册才能生效
我们可以看到Android Studio自动为我们注册好了

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.activitytest">    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/Theme.ActivityTest">        <activity android:name=".NormalActivity">        </activity></application>        </manifest>        
  • 活动注册要放在标签中
  • 通过标签对活动进行注册
  • android:name=".NormalActivity"中填入的活动名是对com.example.activitytest.NormalActivity的缩写
    因为我们之前在标签中已经通过package属性指定了程序包名为com.example.activitytest
    因此这里可以省略,直接使用.NormalActivity即可

但是启动程序时,先启动哪个活动呢?
要配置主活动,就要在标签的内部加入标签,
并在这个标签里添加 和 这两句声明
还可以使用android:label指定活动中标题栏的内容,标题栏是显示在活动最顶部的

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.activitytest">    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/Theme.ActivityTest">        <activity android:name=".NormalActivity"        android:label="This is NormalActivity">        <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>        </activity></application>        </manifest>  

以上操作可以使点击桌面应用程序图标时首先打开的就是NormalActivity,
如果没有声明主活动,程序仍然可以正常安装,只是无法在启动器中看到和打开这个程序,
这个程序一般作为第三方服务供其他应用在内部进行调用,如支付宝快捷支付。

在活动中使用Toast

Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息在一段时间后会自动消失,并不会占用任何的屏幕空间。

界面上有一个按钮,我们可以设定让点击这个按钮时弹出一个Toast,在onCreat()方法中添加如下代码:

protected void onCreate(Bundle savedInstanceState){     super.onCreate(savedInstanceState);setContentView(R.layout.first_layout);Button button1 = (Button)findViewById(R.id.button_1);button1.setOnClickListener(new View.OnClickListener()){     @Overridepublic void onClick(View v){     Toast.makeText(NormalActivity.this,"You click button1",Toast.LENGTH_SHORT).show();}});}
  • 活动中,我们可以通过 findViewById() 方法获取到在布局文件定义的元素,只需要传入 R.id.button_1 就能获取按钮实例
  • findViewById() 方法返回的是一个View对象,所以我们需要向下转型将它转成Button对象
  • 获取按钮实例后我们使用 setOnClickListener() 方法为按钮注册一个监听器,点击按钮时就会执行监听器中的 onClick() 方法
  • 要使用 Toast 只需通过静态方法makeText() 创建出一个Toast对象,然后调用show()将Toast显示出来即可
  • makeText()方法需要传入三个参数,第一个参数是Context,是Toast要求的上下文,第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量可选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG

在活动中使用Menu

后面补充

更多相关文章

  1. android粗略获得程序运行时间的方法
  2. Android(安卓)源码分析 —— 从 Toast 出发
  3. Android消息机制Message消息池
  4. [转]Eclipse 查看Android(安卓)SDK源码
  5. TextView英文自动换行解决方法
  6. android 获取路径目录方法以及判断目录是否存在,创建目录
  7. Android(安卓)常用控件(三)学习笔记
  8. android和vue交互之js调取原生安卓扫码库
  9. [置顶] Android按返回键退出程序但不销毁

随机推荐

  1. 紫枫术河 imx6 uboot的mtd分区总结(rootfs
  2. Uboot启动参数说明
  3. uboot的常用命令及用法
  4. 全面解析|搞懂Nginx这一篇就够了
  5. GNU Makefile手札
  6. 超级详细|Linux系统下从0到1的玩法大全
  7. buildroot管理uboot+kernel+rootfs
  8. 异步编程|五分钟让你学会局部刷新Ajax技术
  9. 在C/C++程序中打印当前函数调用栈
  10. 玩转Redis|学会这10点让你分分钟拿下Redis