第一行代码笔记-探究活动

1.活动是什么。

活动是一种可以包含用户界面的组件,主要用于和用户交互。一个应用程序可以包含零个或多个活动。(四大组件 活动、广播、content provider和服务)

2.活动用法

2.1创建布局

项目中的任何活动都需要重写Activity的onCreate()方法.

例如新建一个FirstActivity.java:

	public class FirstActivity extends AppCompatActivity
{
	@override
	protected void onCreate(Bundle savedInstanceState)
	{
		supper.onCreate(savedInstanceState);
	}
}
	

2.2创建布局

新建布局XML文件在res/layout目录下名为first_layout.xml.。具体代码如下所示

<?xml version="1.0" encoding="utf-8"?>
<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"
        />
    <TextView
        android:id="@+id/text_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="text 1"
        />
其version指定了版本,encoding指定了编码方式

<?xml version="1.0" encoding="utf-8"?>
布局文件根节点为Linearlayout(线性布局), xmln是指定了命名空间

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

线性布局下有Button和TextView元素。并在Button元素中添加了android:id 、android:layout_width、android:layout_height和android:text属性。

其中android:id 是Button元素的唯一标识符。android:layout_width和android:layout_height是设置Button和TextView元素的宽和高。android:text是设置显示的文本。

在XML文件中引用资源的语法是“@id/id_name”,定义一个id的语法是"@+id/id_name".

在FirstActivity中加载first_layout.xml布局,只需要添加如下代码。

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstlayout);
        Button button1 = (Button) findViewById(R.id.button_1);
        button1.setOnClickListener(new View.OnClickListener(){
                public void onClick(View  v)
        {
            Toast.makeText(MainActivity.this, "You clicked button 1",
                    Toast.LENGTH_SHORT).show();
        }
        TextView text1 = (TextView) findViewById(R.id.text_1);
           //     text1.setText("sb 弄了那么久");
    });
    }
}

setContentView()方法是给当前的活动加载布局,传入的参数是布局文件的id。项目中添加的任何资源都会在R文件中生成一个相应的资源id。只需要调用

R.layout.first_layout可以得到first_layout.xml布局的id。

2.3在AndroidManifest文件中注册

所有的活动都要在AndroidManifest文件中注册才能生效。

例如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.missj.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/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="This is FirstActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

   其中package是包名。活动的注册声明要放在<application>标签内。在<Activity>标签中用android:name来指定注册哪一个活动。

配置主活动就是在<activity>标签内部加入<intent-filter>标签并且在这个标签里面添加下面两句声明就可以了。

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
除此之外还可以使用android:label指定活动中标题栏的内容,标题栏是显示在活动的最顶部的。

需要注意的是应用程序中没有声明任何一个活动作为主活动,程序也是可以正常安装的,只是无法再启动器中看到或者打开这个程序。这个程序一般是作为

第三方服务供其他应用在内部调用的,例如支付宝快捷支付服务。

    2.4在活动中使用Toast

Toast是Android提供的一种提醒方式,可以用它将一些短小的信息通知给用户,会显示一段时间后自动消失,不占用任何屏幕空间。

例如: Toast.makeText(FirstActivity.this , "YOU clicked Button 1", Toast.LENGTH_SHORT).show();

Toast使用方法是通过静态方式makeText()创建一个Toast对象,然后调用show()将Toast内容显示出来。makeText传入三个参数,第一个参数是Context,也就是Toast

要求的上下文。活动本身就是一个Context对象,直接传入FirstActivity.this就可以了,第二个参数是Toast显示的文本内容。第三个参数是Toast显示的时长,可以

选择TOAST.LENGTH_SHORT和TOAST.LENGTH_LONG。

2.5 活动中使用Menu

1.在res目录下创建menu文件夹,新建一个main的菜单文件.在main.xml文件中添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
            android:id="@+id/add_item"
            android:title="Add"/>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"/>
</menu>
创建了两个菜单项,其中<item>标签是用来创建具体的某一个菜单,然后通过android:id指定菜单项唯一的标识符,通过android:title指定菜单名称。

2.在FirstActivity中重写onCreateOptionnsMenu方法。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // super.onCreateOptionsMenu(menu);
       getMenuInflater().inflate(R.menu.main,menu);
        return  true;
    }
通过getMenuInflater()方法可以得到MenuInflater对象,调用inflate()方法可以给当前活动创建菜单,inflate方法接收两个参数。第一个参数指定通过那个资源

文件创建菜单,例如传入R.menu.main.第二个参数用于指定将菜单项添加到哪一个Menu对象中,这里直接使用了onCreateOptionsMenu()方法传入的menu参数。

然后给这个方法返回true,表示允许将创建的菜单项显示出来,如果返回false,创建的菜单无法显示。

要菜单真正可以用,需要再定义菜单响应事件。在FirstActivity中重写onOptionsItemSelected()方法:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
            case  R.id.add_item:
                Toast.makeText(this, "You clicked add", Toast.LENGTH_SHORT).show();
                break;
            case  R.id.remove_item:
                Toast.makeText(this, "You clicked remove", Toast.LENGTH_SHORT).show();
                break;
                default:
                    break;
        }
        return true;
    }

在onOptionsItemSelected()方法中,通过调用item.getItemId()来判断点击哪一个菜单项。然后给每个菜单项加入逻辑处理。
2.6销毁活动

Activity类提供了一个finish()方法,通过调用finish()方法就可以销毁活动了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值