依照郭霖老师的《第一行代码Android》,今天我要来学习Android Activity,首先来初步了解Activity,基本上就是照葫芦画瓢的模式,有点回到当初敲java的hello world的模式。

顺便介绍一下我为什么要学习安卓,至于说自己能够学习到什么程度,这完全看项目的需要以及个人的兴趣,但是我对自己持怀疑态度。项目未来要由pc端转向手机端,虽然有专业的安卓工程师,但作为创业团队,我必须要对安卓有所了解,况且我还“精通”(姑且这么说来着,王二的脸皮本来就厚)java,所以之前就研究了安卓环境的部署,花了100多人民币注册了红杏出墙(不料不到两周的时间,突然被封杀了,这种付费模式真不敢恭维,所以在国内免费来得更加让人心安理得些),写了一篇安卓版的hello world,之后就忙其他的事情,时隔多日,再次学习安卓,只想一步一个脚印儿。

一、Activity基本用法

①、新建button

    <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="aaa" />
  1. 至于说id为什么是”@+id”作为定义方式,不清楚,约定俗成的东西,先记住。
  2. match_parent比较好理解,匹配父容器的宽度
  3. wrap_content自动换行
  4. text=”aaa”,不知道为什么会有黄点,可能是要定义到string里,先记录疑问。
  5. 另外还有一点不知道为什么:新建一个Android 布局xml后,双击怎么就是打不开,删掉项目,重启ATD几次后方可打开

②、新建Activity

package com.mwq.activity;import android.app.Activity;import android.os.Bundle;public class FirstActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.first_layout);    }}
  1. R.layout.first_layout纠结了好一会,在引入R包的时候,切记是本项目的包(也就是你创建项目app时指定的package),而非android包下的R,这个R对应也有自己的layout属性,但是调不出来first_layout(也就是上文中创建的layout),这有点坑。不过书中也提到了,但王二我就是容易眼瞎,还是忽略掉了友情提示。

③、注册Activity

        <activity android:name="com.mwq.activity.FirstActivity" android:label="first activity">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>
  1. 感觉label很多余,不过验证后,发现还是有区别的,这个可能书中某处已有介绍,我没有注意。
  2. 对于ATD来说,提示确实不够灵活,android.intent.action.MAIN对于这样的提示应该输入一个main就可以定位到,但是完全没办法做到,够low的。

④、基本拓展

    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.first_layout);        Button button = (Button) findViewById(R.id.button_1);        button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(FirstActivity.this, "王二表现不错", Toast.LENGTH_SHORT).show();            }        });    }
  1. requestWindowFeature(Window.FEATURE_NO_TITLE)设置后,运行虚拟机过程中有延迟,先显示后不显示,以后不知道是否有新用法。
  2. Toast消息提醒,感觉挺不错的,makeText方法的第一个参数为context,从api上来看就是application和activity,第三个参数为显示周期,长或者短,但不知道默认的长短是多少时间,看代码,好像是可以指定。
    /** * Show the view or text notification for a short period of time. This time * could be user-definable. This is the default. * @see #setDuration */    public static final int LENGTH_SHORT = 0;

⑤、使用menu

先新建一个menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:id="@+id/item1" android:title="add" />    <item android:id="@+id/item2" android:title="update" /></menu>

重写onCreateOptionsMenu方法

    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }
  1. getMenuInflater方法依照书中所说是获得menu的Inflater对象,再调用inflate方法可以显示对应的菜单,我反正还不太懂,只是理解会用。
  2. return true和false控制菜单显示和不显示,确实这样子。

弹出消息

    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {        case R.id.item1:            Toast.makeText(this, "add", Toast.LENGTH_LONG).show();            break;        case R.id.item2:            Toast.makeText(this, "update", Toast.LENGTH_LONG).show();            break;        default:            break;        }        return true;    }

先了解到这里吧,项目中来问题了。整体来看,安卓的activity还是蛮有意思的。

笑对现实的无奈,不能后退的时候,不再傍徨的时候,永远向前 路一直都在──陈奕迅《路一直都在》
本文出自:【沉默王二的博客】

更多相关文章

  1. 【Android(安卓)FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视
  2. 获取或同步MeeGo和Android项目源码的脚本[修改稿]
  3. [原] Intellij IDEA开发Android,祝还在使用eclipse的早日脱离苦海
  4. Android:seekbar控件在某些背景下不能正常显示
  5. android应用程序项目结构-02
  6. 给菜鸟级Android程序员的一封信
  7. Android实现自适应正方形GridView
  8. Android(安卓)Studio官方文档之添加多种密度的矢量图形
  9. Android(安卓)Launcher开发(二)AppWidget(桌面小部件)解析

随机推荐

  1. 又升了一版「Java面试题小程序」
  2. 《Java8实战》读书笔记
  3. 学历不够,连 Java 面试的机会都没,怎么破?
  4. 大行情如此之差,我们搞 Java 的该如何面对
  5. 【MySQL】数据库版本升级:mysql 5.6 升级
  6. 《Java编程思想(第4版)》读书笔记
  7. 几款代码高亮组件的体验,说不定你以后会用
  8. 单例模式,这个面试题真那么简单吗?
  9. 分享 1 个一次性免费获得极客时间 2-3 个
  10. 《Java入门1•2•3》读书笔记