#Android Day2

这篇博客介绍了Android开发中活动(Activity)的基本概念,包括如何创建、加载布局、注册活动以及使用Toast和Menu。通过AddNoActivity选项手动创建了一个EmptyActivity,详细解释了在AndroidManifest.xml中注册活动的步骤,特别是如何设置主活动。此外,还展示了如何响应用户交互,例如点击按钮显示Toast。
摘要由CSDN通过智能技术生成

学习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"
		
		<Button
			android: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()){
			@Override
			public 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

后面补充

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值