#Android(安卓)Day2
学习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
后面补充
更多相关文章
- android粗略获得程序运行时间的方法
- Android(安卓)源码分析 —— 从 Toast 出发
- Android消息机制Message消息池
- [转]Eclipse 查看Android(安卓)SDK源码
- TextView英文自动换行解决方法
- android 获取路径目录方法以及判断目录是否存在,创建目录
- Android(安卓)常用控件(三)学习笔记
- android和vue交互之js调取原生安卓扫码库
- [置顶] Android按返回键退出程序但不销毁