`
h389301776
  • 浏览: 9334 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android基础之Acticity初步了解

 
阅读更多

一:Acticity初步了解

Acticity程序是andriod的基本组成单元。

1.       andriod程序的开发

2.       掌握Android项目的各个主要组成部分及作用

3.       掌握andrioid程序的主要开发模式

4.       掌握activityandroidManifext.xml文件的配置

内容:

1.1Android项目基础

 

 

在本程序之中,先观察java程序类

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

 

public class MyActivity extends Activity {

    /**

     * Called when the activity is first created.

     */

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

}

MyActivityActivity的子类,可以参考API

ActivityContext类的子类,Context表示的是一个上下文,指的就是Android上下文

 

Activity就是一个基本的组成单元,而Android项目之中会包含多个activity程序,通过这些程序可以完成一个个的界面显示及事件处理

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

 

public class MyActivity extends Activity {

  

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        setContentView(R.layout.main);//设置要使用的布局管理器

    }

}

项目中的文件夹的作用进行解释:

Src :里面存放的是activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级;

Gen:此文件夹是自动生成的用户不可以修改,即:保存的是所有ID

 R.java:保存着所有的资源程序,次文件自动编写。在日后的程序之中,程序不会直接与所有的配置文件操作,都是通过映射名称找到的,这一点非常符合于java中的key = value 的操作形式;

 Android2.3.3:此为现在使用的Android的开发版本;

Assests:存放一些大型的资源文件,例如:图片、音乐、文字等等,但是一般不用;

Res:存放一些资源文件使用,例如:图片、音乐、文字等等;

 drawable-hdpi :存放图片的文件夹,存放高清图片 480x800480x854

drawable-ldpi  :存放图片的文件夹,存放低分辨率的图片240x320

drawable-mdpi :存放图片的文件夹,存放中等分辨率的图片320x480

drawable-xhdpi   存放图片的文件夹,存放的分辨率图片为至少是960x720

layout:存放所有的布局管理器的配置信息;

values:存放所有的文字信息,这一点的设计也非常符合于MVC设计模式;

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="app_name">wwwww</string>

</resources>

此名称是在手机的应用程序栏中显示的提示信息。即:以后所编写的所有项目中,都应该在strings.xml文件之中编写相应的提示信息,但是考虑到本书的篇幅问题,以及大家的理解问题,所以很多时候会直接在需要的地方编写文字,但是如果是开发的时候一定要将它编写在strings.xml文件之中,而在strings.xml文件中编写的提示信息,都会自动的在R.java文件中自动注册。

补充:关于values文件夹的内容:

  随着日后的学习,在此文件夹之中会建立许多的子文件,除了strings.xml文件这个基本的内容之外,还可能存在其他的信息:arrays.xmlcolor.xmlstyles.xml,这些名称都是约定俗称的;

以上的几个文件夹都是在建立项目的时候自动的在res文件中出现的,除了这几个文件夹之外,在res文件夹之中以后也会增加如下的几个子文件夹:

  Res\raw:存放一些原生文件例如:视频、音乐;

  Res\xml:存放一些xml文件配置信息;

  Rex\anim:用于进行动画效果配置的文件夹;

AndroidManifest.xml 文件是整个Android项目之中最重要的文件

<?xml version="1.0" encoding="utf-8"?>

<manifest   ->对应着的是根元素

 xmlns:android=http://schemas.android.com/apk/res/android  ->对应使用的schema

          package="com.example.wwwww" ->表示程序所在的包名称

          android:versionCode="1"   -应用程序的版本号

          android:versionName="1.0">  -显示给用户的名称

    <uses-sdk android:minSdkVersion="18"/>  -此为应用程序所对应的最低SDK版本

<application   -配置所有的应用程序

android:label="@string/app_name"  表示应用程序提示的信息

android:icon="@drawable/ic_launcher">  使用图标

        <activity  表示配置一个activity程序,如果有需要可以编写多个此节点

 android:name="MyActivity"  ->对应的activity程序的名称

                  android:label="@string/app_name"> 表示应用程序提示的信息,使用的strings.xml

            <intent-filter>  表示的是过滤器

                <action android:name="android.intent.action.MAIN"/>

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

            </intent-filter>

        </activity>

</application>

<uses-oermission   / >  表示应用的授权

</manifest>

但是一般在基础学习的前半部分,此文件基本上不用做太大的修改,而唯一修改最多的地方就是main.xml文件。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout  表示布局管理器的布局形式,此为线性布局

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

              android:orientation="vertical"  组件的排列方式,此为垂直排列

              android:layout_width="fill_parent" 此布局管理器的宽度,现在为当前手机宽度

              android:layout_height="fill_parent" 此布局管理器的高度,现在为当前手机高度

        >

    <TextView

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="Hello World,  binbinbin MyActivity"

            />

 

    <TextView   此为文本显示组件,显示提示信息的

            android:layout_width="fill_parent"  指的是此组件的宽度为当前屏幕的宽度

            android:layout_height="wrap_content" 组件的高度为文字的高度

            android:text="Hello World,  xuhui MyActivity" 组件的默认显示文字,此时为strings.xml

            /> 

</LinearLayout>

 

以后的所有组件都要在此处进行配置,或者是通过程序代码完成

 

 

1.2扩充的第一个Android项目

 在之前所有使用的项目区都是由系统为用户自动建立完成的,那么用户现在肯定要根据自己的需要对项目进行修改及扩充。

Activity和布局文件之间的联系非常的紧密,即:可以通过activity取得组件(但是需要配置ID),也可以使用activity通过程序动态生成组件。

快捷键:ALT+/ 进行自动提示

 

<TextView

            android:id="@+id/mytext"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="Hello World,  xuhui MyActivity"

            />

    <Button

            android:id="@+id/mytext"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"/>

现在配置了两个新的组件,这两个组件都存在了ID,而在以后的activity程序之中会直接使用此组件进行操作,而且一旦定义了组件之后,所有的内容也会自动的在R.java文件中生成一个引用的ID

下面最有意思的地方在于可以直接通过activity操作。

使用findViewById()方法可以根据R.java中定义的ID的数字取得相应的组件

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.Button;

import android.widget.TextView;

 

public class MyActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        setContentView(R.layout.main);//设置要使用的布局管理器

        TextView text = (TextView)super.findViewById(R.id.mytext);  //取得TextView组件

        text.setText("石家庄邮电职业技术学院"); //设置显示文字

        Button but = (Button) super.findViewById(R.id.mytext); //取得组件

        but.setText("按我,不过没有。");

    }

}

MVC设计模式中,应该将所有的提示信息在配置文件之中完成,以上是将具体的文字信息直接写在显示的组件之中,下面进行部分的修改。

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="app_name">徐辉</string>

    <string name="info">石家庄邮电职业技术学院</string>

    <string name="msg">按我,不过没有</string>

</resources>

肯定现在在R.java文件中也会自动的进行信息文字的注册ID

现在如果要进行显示,可以直接修改activity程序:

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.Button;

import android.widget.TextView;

 

public class MyActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        setContentView(R.layout.main);//设置要使用的布局管理器

        TextView text = (TextView)super.findViewById(R.id.mytext);  //取得TextView组件

        text.setText(R.string.info); //设置显示文字

        Button but = (Button) super.findViewById(R.id.mytext); //取得组件

        but.setText(R.string.msg);

    }

}

 

<?xml version="1.0" encoding="utf-8"?>

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

              android:orientation="vertical"

              android:layout_width="fill_parent"

              android:layout_height="fill_parent"

        >

    <TextView

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="@string/app_name"

            />

 

    <TextView

            android:id="@+id/mytext"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="@string/info"

            />

    <Button

            android:id="@+id/mytext"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="@string/msg"/>

   

</LinearLayout>

 

以上的操作形式就是直接通过配置文件完成的。

1.3通过程序动态生成

 通过上面的程序应用可以发现,在整个的项目之中,所有的组件都可以通过一个类来表示所以那个时候就可以直接利用类的方式定义组件。

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.Button;

import android.widget.TextView;

 

public class MyActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        TextView text = new TextView(this);//要根据上下文(Context)创建组件

        text.setText(super.getString(R.string.info));//通过strings.xml文件设置文字

        setContentView(text);//设置要使用的布局管理器

 

    }

}

 

相信此时很多的同学应该已经可以发现一个问题了,现在的配置只能配置一个组件,如果有多个呢?

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.TextView;

 

public class MyActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        LinearLayout layout = new LinearLayout(this); //定义布局管理器

        TextView text = new TextView(this);//要根据上下文(Context)创建组件

        text.setText(super.getString(R.string.info));//通过strings.xml文件设置文字

        Button but = new Button(this); //定义按钮

        but.setText(super.getString(R.string.msg));//配置组件文字

        layout.addView(text);//向布局管理器中增加文本组件

        layout.addView(but);//向布局管理器中增加按钮组件

        setContentView(layout);//设置要使用的布局管理器

 

 

    }

}

 

 

如果要想设置方向就需要使用LinearLayout类中的方法

package com.example.wwwww;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.TextView;

 

public class MyActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState);//生命周期方法

        LinearLayout layout = new LinearLayout(this); //定义布局管理器

        layout.setOrientation(LinearLayout.VERTICAL);//所有组件垂直摆放

        TextView text = new TextView(this);//要根据上下文(Context)创建组件

        text.setText(super.getString(R.string.info));//通过strings.xml文件设置文字

        Button but = new Button(this); //定义按钮

        but.setText(super.getString(R.string.msg));//配置组件文字

        layout.addView(text);//向布局管理器中增加文本组件

        layout.addView(but);//向布局管理器中增加按钮组件

        setContentView(layout);//设置要使用的布局管理器

 

 

    }

}

 全部字母大写就是定义了常量。

 

 

小结:

Android项目由若干个activity程序组成,每个activity都是一个java类;

一个Android项目中所有用到的资源都保存在res文件夹中;

Android中的组件需要在布局管理器中进行配置,之后在Activity程序中可以使用findViewByld()方法查找并进行控制;

在布局管理器中定义的每一组件都有其对应的操作类,用户可以直接实例化这些类的对象进行组件的定义显示;

标准的Android项目,所有的文字显示信息应该保存在strings.xml文件中保存。

 

由于受到本书篇幅的限制,以后所讲解的组件之中,文字信息就直接编写了,但是如果是开发之中必须在strings.xml文件中编写。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Android-From-Screen-To-Screen-Acticity-Example.

    Android-From-Screen-To-Screen-Acticity-Example 两个activity相互跳转

    Activity生命周期演示

    日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...

    android 计算bmi源码

    这个demo里面包含了,OnClickListener的三种实现方法 ,acticity之间的传值,数值格式化的实现,想找android实例的童鞋们可以下载去看看~ ps:我的博客中也有写我学习android相关的东西哦~

    Android Activity的4种启动模式图文介绍

    相信很多人和我一样,在初学Android甚至初入职场的时候不了解Acticity的启动模式,或者为了面试刷题刷到了,但并不理解启动模式的作用,以及如何正确的使用启动模式而不是所有的都是用默认模式。 二、Activity启动...

    Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法

    做Android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表。 想了想,找了两种方式 方法一:通过...

    透明与窗体的设置

    PS1:如果只是将Acticity显示为默认的Dialog, 跳过第一步,只需要在manifest文中增加属性:android:theme="@android:style/Theme.Dialog"或者在程序中增加setTheme(android.R.style.Theme_Dialog). PS2:其他创建...

    fragment和activity之间通信

    自己写的activity和fragment 之间通讯 小demo ~~ 希望能帮到大家

    Android动态加载Activity原理详解

    activity的启动流程 ...通过startActivity启动后,最终通过AMS进行跨进程回调到ApplicationThread的scheduleLaunchActivity,这时会创建一个ActivityClientRecord对象,这个对象表示一个Acticity以及他的相关

    Android的一个简单日程表实现

    简单的日程表管理,使用自带的日历控件并在Acticity中使用了Fragment,数据库为SQLite,能够实现日程的增删改查。

    悬浮activity的实现

    悬浮activity的实现

    word源码java-MobileBankApp:AndroidOS上的模拟手机银行APP

    客户端展示了基于androidOS的编程方法和框架,例如Acticity类、Fragment类的使用以及UI/Main线程和worker线程的分离。 客户端-服务器消息传输层基于TCP/IP协议实现消息封装、拆分和一些相关的传输机制。 演示 存储库...

    计算人体BMI数值 DEMO

    这个demo里面包含了,OnClickListener的三种实现方法 ,acticity之间的传值,数值格式化的实现,想找android实例的童鞋们可以下载去看看~ ps:我的博客中也有写我学习android相关的东西哦~

    Android AndBase框架实现多功能标题栏(一)

    本文是针对AndBase框架学习整理的第一篇笔记,想要了解AndBase框架的朋友可以阅读本文,大家共同学习。 1.使用AndBase实现多功能标题栏 AndBase框架内部提供了许多的方式能够使我们去设置一个更好的标题栏,进行动态...

    activity设置背景透明

    设置anctivity的背景色透明。共三种方法,详细见博客http://blog.csdn.net/lily9/article/details/11983221

    bindService demo源码

    android数据传输的Service BindService的一个demo,Service添加一个计数器,Acticity可以获取当前状态

    使用IDEA对springboot+activiti开发demo和详细讲解

    使用IDEA对springboot+activiti开发demo和详细讲解...下载该资源可以先了解下具体文章https://blog.csdn.net/qq_28582847/article/details/79911450 还有https://blog.csdn.net/qq_28582847/article/details/79915700

    计算BMI demo

    这个demo里面包含了,OnClickListener的三种实现方法 ,acticity之间的传值,数值格式化的实现,想找android实例的童鞋们可以下载去看看~ ps:我的博客中也有写我学习android相关的东西哦~

    Activiti5 10分钟入门指南(中文)

    通过一个简单的业务流程,介绍了基本的Activiti概念和API。

    Android仿微信滑动退出Activity

    重写Activity的dispatchTouchEvent,滑动的时候拿到Activity栈中栈顶Activity的上一个Acticity的ContentView添加到栈顶Activity的DecorView中,滑动的过程中做视图平移,滑动结束之后把前面拿过来用的ContentView...

    字体库:simsun.tcc

    linux中菜单和文件名中中文显示麻将方块,调整办法: 1.cd /usr/share/fonts 2.mkdir truetype 3.cd truetype 4.mkdir simsun 5.将simsun.tcc文件传到/usr/share/fonts/truetype/simsun/目录中 ...

Global site tag (gtag.js) - Google Analytics