Android 了解Activity-阿里云开发者社区

开发者社区> 沉默王二> 正文

Android 了解Activity

简介: Android 了解Activity
+关注继续查看

依照郭霖老师的《第一行代码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"
        />


至于说id为什么是”@+id”作为定义方式,不清楚,约定俗成的东西,先记住。

match_parent比较好理解,匹配父容器的宽度

wrap_content自动换行

text=”aaa”,不知道为什么会有黄点,可能是要定义到string里,先记录疑问。

另外还有一点不知道为什么:新建一个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);
    }
}


被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>


感觉label很多余,不过验证后,发现还是有区别的,这个可能书中某处已有介绍,我没有注意。

对于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();
            }
        });
    }


requestWindowFeature(Window.FEATURE_NO_TITLE)设置后,运行虚拟机过程中有延迟,先显示后不显示,以后不知道是否有新用法。

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;
    }


getMenuInflater方法依照书中所说是获得menu的Inflater对象,再调用inflate方法可以显示对应的菜单,我反正还不太懂,只是理解会用。

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还是蛮有意思的。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10081 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11615 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9160 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13885 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4659 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7496 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22402 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载