Android:第一行代码学习记录(一)

使用Android Studio进行安卓开发,Android Studio安装过程这里就不介绍了,网上有很多教程,本博客仅记录个人学习过程。

第二章 探究活动

首先新建一个项目,最后一步记得选择Add No Activity,手动创建活动。右击com.example.activitytest包-new-activity-Empty Activity,弹出对话框,命名为FirstActivity,并且不勾选Generate Layout File 和 Launcher Activity。

接下来手动创建布局文件,右击app/src/main/res目录-New-Dictionary,新建一个名为layout的目录,然后对着目录右击-Layout resource file,将布局文件命名为first_layout,根元素默认。这时候显示出可视化编辑器,选择窗口下方的Text通过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"
        />
</LinearLayout>

android:id是给当前的元素定义一个唯一标识符,之后可以在代码中对这个元素进行操作。如果需要在XML中引用一个id,就使用@id/id_name,如果需要在XML中定义一个id就要使用@id/+id_name。android:layout_width指定当前元素宽度,使用match_parent表示让当前元素与父元素一样宽。warp_content表示当前元素的高度只要能刚好包含在里面的内容就行。

重新回到FirstActivity,在onCreate()方法中加入如下代码:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_layout);
}

这里调用setContentView()方法给当前活动加载布局,在setContentView()方法中,一般传入一个布局文件的id。在first_layout.xml布局中的id已经添加到R文件中,所以可以用R.layout.first_layout得到first_layout.xml的布局。

所有活动都要在AndridManifest.xml中进行注册才能生效,而Android Studio自动帮我们将FirstActivity在AndroidManifest.xml中注册过了。注册的申明放在<aoplication>标签内,通过<activity>标签对活动进行注册。android.name指定具体注册哪一个活动。在<activity>标签内加入<intent-filter>标签,并在标签内添加这两句声明,即可为程序配置主活动,声明之后才能运行程序。也可以使用android:label指定活动中标题的内容,给主活动指定的label还会成为启动器中应用程序显示的名称。

 
 

扫描二维码关注公众号,回复: 1600159 查看本文章
<intent-filter>
    <action android:name="android.intent.action.MAIN" />

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

这两句声明,即可为程序配置主活动,声明之后才能运行程序。也可以使用android:label指定活动中标题的内容,给主活动指定的label还会成为启动器中应用程序显示的名称。

在活动中使用Toast将一些短小的信息通知给用户,这些信息在一段时候后会消失。在onCreat()方法中添加如下代码:

Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(FirstActivity.this,"You clicked Button 1 ",
                Toast.LENGTH_SHORT).show();}

在活动中通过静态方法makeText()创建出一个Toast对象,然后调用show将其显示出来。makeText需要传入三个参数,第一个参数是Context,也就是Toast要求的上下文,这里直接传入FirsActivity.this即可。第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长。

在活动中使用Menu
首先在res目录下新建一个menu文件夹,右击res目录-New-Directory,输入文件名menu,点击OK。接着在该文件夹下创建一个叫main的菜单文件,右击menu-New-Menu resource file
在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给这个菜单项指定一个名称。接着回到FirstActivity中重写onCeatOptionsMenu()方法,重写方法快捷键是Ctrl+O(Mac系统是control+o)然后在 onCeatOptionsMenu()方法中编写如下代码:
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
}
通过getMenuInfalter()方法得到MenuInflater对象,再调用其inflate()方法,就可以给当前活动创建菜单了。inflate()方法接受两个参数,第一个参数指定通过哪个资源文件创建菜单,这里传入R.menu.main。第二个参数用于指定菜单项将添加到哪个Menu对象中,这里用方法传入的menu参数。
在FirstActivity中重写onOptionsItemSelected()方法用以相应菜单响应事件。代码如下:
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:
    }
    return true;
}


猜你喜欢

转载自blog.csdn.net/etchtime/article/details/80330460